msw 2.14.7 → 3.0.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 (759) hide show
  1. package/README.md +8 -0
  2. package/cli/init.js +12 -9
  3. package/cli/invariant.js +2 -2
  4. package/lib/_chunks/attach-sibling-handlers.js +360 -0
  5. package/lib/_chunks/attach-sibling-handlers.js.map +1 -0
  6. package/lib/_chunks/colors.js +18 -0
  7. package/lib/_chunks/colors.js.map +1 -0
  8. package/lib/_chunks/cookie-store.js +348 -0
  9. package/lib/_chunks/cookie-store.js.map +1 -0
  10. package/lib/_chunks/execute-handlers.js +29 -0
  11. package/lib/_chunks/execute-handlers.js.map +1 -0
  12. package/lib/_chunks/handlers-controller.d.ts +262 -0
  13. package/lib/_chunks/has-ref-counted.js +9 -0
  14. package/lib/_chunks/has-ref-counted.js.map +1 -0
  15. package/lib/_chunks/http-handler.d.ts +72 -0
  16. package/lib/_chunks/http-handler.js +182 -0
  17. package/lib/_chunks/http-handler.js.map +1 -0
  18. package/lib/_chunks/http-response.js +137 -0
  19. package/lib/_chunks/http-response.js.map +1 -0
  20. package/lib/{core → _chunks}/http.d.ts +15 -18
  21. package/lib/_chunks/http.js +30 -0
  22. package/lib/_chunks/http.js.map +1 -0
  23. package/lib/_chunks/interceptor-source.d.ts +163 -0
  24. package/lib/_chunks/interceptor-source.js +756 -0
  25. package/lib/_chunks/interceptor-source.js.map +1 -0
  26. package/lib/_chunks/is-object.js +11 -0
  27. package/lib/_chunks/is-object.js.map +1 -0
  28. package/lib/_chunks/match-request-url.d.ts +14 -0
  29. package/lib/_chunks/request-handler.d.ts +295 -0
  30. package/lib/_chunks/request-handler.js +369 -0
  31. package/lib/_chunks/request-handler.js.map +1 -0
  32. package/lib/_chunks/shared-options.d.ts +20 -0
  33. package/lib/_chunks/sse.d.ts +95 -0
  34. package/lib/_chunks/sse.js +599 -0
  35. package/lib/_chunks/sse.js.map +1 -0
  36. package/lib/_chunks/symbols.js +22 -0
  37. package/lib/_chunks/symbols.js.map +1 -0
  38. package/lib/_chunks/websocket-upgrade.js +46 -0
  39. package/lib/_chunks/websocket-upgrade.js.map +1 -0
  40. package/lib/_chunks/ws.d.ts +133 -0
  41. package/lib/_chunks/ws.js +293 -0
  42. package/lib/_chunks/ws.js.map +1 -0
  43. package/lib/browser/index.d.ts +225 -96
  44. package/lib/browser/index.js +555 -3694
  45. package/lib/browser/index.js.map +1 -1
  46. package/lib/core/experimental/index.d.ts +3 -17
  47. package/lib/core/experimental/index.js +2 -38
  48. package/lib/core/index.d.ts +15 -27
  49. package/lib/core/index.js +15 -64
  50. package/lib/graphql/index.d.ts +550 -0
  51. package/lib/graphql/index.js +1244 -0
  52. package/lib/graphql/index.js.map +1 -0
  53. package/lib/http/index.d.ts +4 -0
  54. package/lib/http/index.js +4 -0
  55. package/lib/iife/index.js +35857 -28289
  56. package/lib/iife/index.js.map +1 -1
  57. package/lib/mockServiceWorker.js +204 -93
  58. package/lib/node/index.d.ts +79 -104
  59. package/lib/node/index.js +103 -201
  60. package/lib/node/index.js.map +1 -1
  61. package/lib/sse/index.d.ts +2 -0
  62. package/lib/sse/index.js +2 -0
  63. package/lib/{core → utils}/bypass.d.ts +5 -4
  64. package/lib/utils/bypass.js +41 -0
  65. package/lib/utils/bypass.js.map +1 -0
  66. package/lib/utils/delay.d.ts +15 -0
  67. package/lib/utils/delay.js +45 -0
  68. package/lib/utils/delay.js.map +1 -0
  69. package/lib/utils/get-clean-url-string.d.ts +9 -0
  70. package/lib/utils/get-clean-url-string.js +15 -0
  71. package/lib/utils/get-clean-url-string.js.map +1 -0
  72. package/lib/utils/get-response.d.ts +13 -0
  73. package/lib/utils/get-response.js +23 -0
  74. package/lib/utils/get-response.js.map +1 -0
  75. package/lib/utils/is-common-asset-request.d.ts +22 -0
  76. package/lib/utils/is-common-asset-request.js +31 -0
  77. package/lib/utils/is-common-asset-request.js.map +1 -0
  78. package/lib/utils/passthrough.d.ts +31 -0
  79. package/lib/utils/passthrough.js +41 -0
  80. package/lib/utils/passthrough.js.map +1 -0
  81. package/lib/vite/index.d.ts +44 -0
  82. package/lib/vite/index.js +90 -0
  83. package/lib/vite/index.js.map +1 -0
  84. package/lib/vite/runtime.d.ts +6 -0
  85. package/lib/vite/runtime.js +77 -0
  86. package/lib/vite/runtime.js.map +1 -0
  87. package/lib/ws/index.d.ts +4 -0
  88. package/lib/ws/index.js +4 -0
  89. package/package.json +93 -201
  90. package/src/browser/default-network-options.ts +31 -0
  91. package/src/browser/glossary.ts +11 -23
  92. package/src/browser/index.ts +5 -1
  93. package/src/browser/setup-worker.ts +15 -68
  94. package/src/browser/sources/fallback-http-source.ts +1 -1
  95. package/src/browser/sources/service-worker-source.ts +76 -69
  96. package/src/browser/tsconfig.browser.json +4 -2
  97. package/src/browser/utils/{deserializeRequest.ts → deserialize-request.ts} +3 -4
  98. package/src/browser/utils/{getAbsoluteWorkerUrl.test.ts → get-absolute-worker-url.test.ts} +3 -3
  99. package/src/browser/utils/get-worker-instance.ts +2 -2
  100. package/src/browser/utils/should-invalidate-worker.test.ts +11 -11
  101. package/src/browser/utils/should-invalidate-worker.ts +1 -1
  102. package/src/browser/utils/validate-worker-scope.ts +1 -1
  103. package/src/browser/utils/{workerChannel.ts → worker-channel.ts} +42 -20
  104. package/src/core/experimental/define-network.test.ts +43 -8
  105. package/src/core/experimental/define-network.ts +32 -13
  106. package/src/core/experimental/frames/http-frame.test.ts +15 -13
  107. package/src/core/experimental/frames/http-frame.ts +10 -9
  108. package/src/core/experimental/frames/websocket-frame.test.ts +129 -15
  109. package/src/core/experimental/frames/websocket-frame.ts +71 -20
  110. package/src/core/experimental/handlers-controller.test.ts +141 -34
  111. package/src/core/experimental/handlers-controller.ts +107 -30
  112. package/src/core/experimental/index.ts +1 -0
  113. package/src/core/experimental/on-unhandled-frame.test.ts +19 -19
  114. package/src/core/experimental/on-unhandled-frame.ts +7 -12
  115. package/src/core/experimental/request-utils.test.ts +4 -29
  116. package/src/core/experimental/request-utils.ts +0 -14
  117. package/src/core/experimental/sources/interceptor-source.ts +44 -29
  118. package/src/core/experimental/sources/network-source.test.ts +3 -3
  119. package/src/core/experimental/sources/network-source.ts +3 -3
  120. package/src/core/handlers/handler.ts +42 -0
  121. package/src/core/handlers/{RequestHandler.ts → request-handler.ts} +168 -73
  122. package/src/core/index.ts +35 -58
  123. package/src/core/shared-options.ts +21 -0
  124. package/src/core/type-utils.ts +18 -0
  125. package/src/core/utils/{cookieStore.ts → cookie-store.ts} +14 -9
  126. package/src/core/utils/{executeHandlers.ts → execute-handlers.ts} +2 -2
  127. package/src/core/utils/http-status-messages.ts +69 -0
  128. package/src/core/utils/internal/{attachSiblingHandlers.ts → attach-sibling-handlers.ts} +20 -0
  129. package/src/core/utils/internal/{devUtils.test.ts → dev-utils.test.ts} +3 -3
  130. package/src/core/utils/internal/{Disposable.ts → disposable.ts} +1 -1
  131. package/src/core/utils/internal/{getCallFrame.test.ts → get-call-frame.test.ts} +1 -1
  132. package/src/core/utils/internal/{getCallFrame.ts → get-call-frame.ts} +1 -1
  133. package/src/core/utils/internal/{hasRefCounted.test.ts → has-ref-counted.test.ts} +4 -4
  134. package/src/core/utils/internal/{hasRefCounted.ts → has-ref-counted.ts} +1 -1
  135. package/src/core/utils/internal/{isIterable.test.ts → is-iterable.test.ts} +1 -1
  136. package/src/core/utils/internal/is-iterable.ts +16 -0
  137. package/src/core/utils/internal/{isObject.test.ts → is-object.test.ts} +1 -1
  138. package/src/core/utils/internal/{isStringEqual.test.ts → is-string-equal.test.ts} +7 -7
  139. package/src/core/utils/internal/{jsonParse.test.ts → json-parse.test.ts} +1 -1
  140. package/src/core/utils/internal/observe-response-body-stream.test.ts +64 -0
  141. package/src/core/utils/internal/observe-response-body-stream.ts +76 -0
  142. package/src/core/utils/internal/{parseMultipartData.test.ts → parse-multipart-data.test.ts} +1 -1
  143. package/src/core/utils/internal/{parseMultipartData.ts → parse-multipart-data.ts} +1 -1
  144. package/src/core/utils/internal/{toReadonlyArray.test.ts → to-readonly-array.test.ts} +4 -4
  145. package/src/core/utils/logging/colors.ts +13 -0
  146. package/src/core/utils/logging/{getStatusCodeColor.test.ts → get-status-code-color.test.ts} +1 -1
  147. package/src/core/utils/logging/{getTimestamp.test.ts → get-timestamp.test.ts} +1 -1
  148. package/src/core/utils/logging/{serializeRequest.test.ts → serialize-request.test.ts} +1 -1
  149. package/src/core/utils/logging/{serializeResponse.test.ts → serialize-response.test.ts} +8 -10
  150. package/src/core/utils/logging/{serializeResponse.ts → serialize-response.ts} +2 -4
  151. package/src/core/utils/matching/match-request-url.test.ts +90 -0
  152. package/src/core/utils/matching/match-request-url.ts +45 -0
  153. package/src/core/utils/matching/{normalizePath.node.test.ts → normalize-path.node.test.ts} +2 -4
  154. package/src/core/utils/matching/{normalizePath.test.ts → normalize-path.test.ts} +2 -4
  155. package/src/core/utils/matching/{normalizePath.ts → normalize-path.ts} +8 -5
  156. package/src/core/utils/request/{getAllAcceptedMimeTypes.test.ts → get-all-accepted-mime-types.test.ts} +14 -14
  157. package/src/core/utils/request/get-request-cookies.ts +76 -0
  158. package/src/core/utils/request/store-response-cookies.ts +15 -0
  159. package/src/core/utils/request/{toPublicUrl.node.test.ts → to-public-url.node.test.ts} +1 -1
  160. package/src/core/utils/request/{toPublicUrl.test.ts → to-public-url.test.ts} +2 -2
  161. package/src/core/utils/{HttpResponse/decorators.ts → response-decorators.ts} +28 -9
  162. package/src/core/utils/url/{getAbsoluteUrl.node.test.ts → get-absolute-url.node.test.ts} +5 -7
  163. package/src/core/utils/url/{getAbsoluteUrl.test.ts → get-absolute-url.test.ts} +7 -7
  164. package/src/core/utils/url/{getAbsoluteUrl.ts → get-absolute-url.ts} +1 -1
  165. package/src/core/utils/url/is-absolute-url.test.ts +30 -0
  166. package/src/{core/handlers/GraphQLHandler.test.ts → graphql/graphql-handler.test.ts} +37 -36
  167. package/src/{core/handlers/GraphQLHandler.ts → graphql/graphql-handler.ts} +54 -41
  168. package/src/graphql/graphql-subscription-event.ts +39 -0
  169. package/src/graphql/graphql-subscription.test.ts +208 -0
  170. package/src/graphql/graphql-subscription.ts +1487 -0
  171. package/src/graphql/graphql.test.ts +14 -0
  172. package/src/graphql/graphql.ts +179 -0
  173. package/src/graphql/index.ts +34 -0
  174. package/src/{core/utils/internal/parseGraphQLRequest.test.ts → graphql/parse-graphql-request.test.ts} +47 -6
  175. package/src/{core/utils/internal/parseGraphQLRequest.ts → graphql/parse-graphql-request.ts} +59 -32
  176. package/src/{core/handlers/HttpHandler.test.ts → http/http-handler.test.ts} +107 -18
  177. package/src/{core/handlers/HttpHandler.ts → http/http-handler.ts} +16 -18
  178. package/src/{core/HttpResponse.test.ts → http/http-response.test.ts} +25 -27
  179. package/src/{core/HttpResponse.ts → http/http-response.ts} +15 -17
  180. package/src/{core → http}/http.ts +7 -7
  181. package/src/http/index.test.ts +19 -0
  182. package/src/http/index.ts +22 -0
  183. package/src/http/symbols.ts +19 -0
  184. package/src/iife/index.ts +2 -0
  185. package/src/mockServiceWorker.js +202 -91
  186. package/src/node/async-handlers-controller.test.ts +4 -4
  187. package/src/node/glossary.ts +8 -4
  188. package/src/node/index.ts +1 -6
  189. package/src/node/setup-server-common.ts +16 -73
  190. package/src/node/setup-server.ts +9 -40
  191. package/src/sse/index.test.ts +14 -0
  192. package/src/sse/index.ts +7 -0
  193. package/src/{core → sse}/sse.ts +105 -69
  194. package/src/tsconfig.core.build.json +5 -1
  195. package/src/tsconfig.core.json +8 -1
  196. package/src/tsconfig.node.json +1 -1
  197. package/src/tsconfig.src.json +1 -1
  198. package/src/{core → utils}/bypass.test.ts +22 -5
  199. package/src/{core → utils}/bypass.ts +11 -0
  200. package/src/{core → utils}/delay.ts +5 -5
  201. package/src/utils/get-clean-url-string.test.ts +24 -0
  202. package/src/utils/get-clean-url-string.ts +16 -0
  203. package/src/{core/getResponse.test.ts → utils/get-response.test.ts} +9 -9
  204. package/src/{core/getResponse.ts → utils/get-response.ts} +2 -2
  205. package/src/{core/isCommonAssetRequest.ts → utils/is-common-asset-request.ts} +4 -3
  206. package/src/utils/passthrough.test.ts +41 -0
  207. package/src/utils/passthrough.ts +46 -0
  208. package/src/vite/client.d.ts +16 -0
  209. package/src/vite/index.ts +4 -0
  210. package/src/vite/options.d.ts +5 -0
  211. package/src/vite/plugin.test.ts +918 -0
  212. package/src/vite/plugin.ts +133 -0
  213. package/src/vite/runtime.ts +117 -0
  214. package/src/vite/tsconfig.build.json +7 -0
  215. package/src/ws/index.ts +23 -0
  216. package/src/{core/ws/utils/attachWebSocketLogger.ts → ws/utils/attach-websocket-logger.ts} +45 -23
  217. package/src/{core/ws/utils/getMessageLength.test.ts → ws/utils/get-message-length.test.ts} +4 -4
  218. package/src/{core/ws/utils/getMessageLength.ts → ws/utils/get-message-length.ts} +1 -1
  219. package/src/{core/ws/utils/getPublicData.test.ts → ws/utils/get-public-data.test.ts} +7 -7
  220. package/src/ws/utils/get-public-data.ts +23 -0
  221. package/src/{core/ws/utils/truncateMessage.test.ts → ws/utils/truncate-message.test.ts} +3 -3
  222. package/src/{core/ws/WebSocketClientManager.test.ts → ws/websocket-client-manager.test.ts} +8 -9
  223. package/src/{core/ws/WebSocketClientManager.ts → ws/websocket-client-manager.ts} +24 -28
  224. package/src/{core/ws/WebSocketClientStore.ts → ws/websocket-client-store.ts} +2 -2
  225. package/src/{core/handlers/WebSocketHandler.test.ts → ws/websocket-handler.test.ts} +15 -15
  226. package/src/{core/handlers/WebSocketHandler.ts → ws/websocket-handler.ts} +144 -32
  227. package/src/{core/ws/WebSocketIndexedDBClientStore.ts → ws/websocket-indexeddb-client-store.ts} +12 -13
  228. package/src/{core/ws/WebSocketMemoryClientStore.ts → ws/websocket-memory-client-store.ts} +4 -4
  229. package/src/ws/websocket-upgrade.ts +83 -0
  230. package/src/{core → ws}/ws.test.ts +3 -4
  231. package/src/{core → ws}/ws.ts +106 -53
  232. package/browser/package.json +0 -31
  233. package/cli/package.json +0 -3
  234. package/config/package.json +0 -3
  235. package/config/scripts/postinstall.js +0 -36
  236. package/lib/browser/index.d.mts +0 -112
  237. package/lib/browser/index.mjs +0 -3706
  238. package/lib/browser/index.mjs.map +0 -1
  239. package/lib/core/HttpResponse-BTyqrRB6.d.mts +0 -371
  240. package/lib/core/HttpResponse-BXyXQFMJ.d.ts +0 -371
  241. package/lib/core/HttpResponse.d.mts +0 -6
  242. package/lib/core/HttpResponse.d.ts +0 -6
  243. package/lib/core/HttpResponse.js +0 -176
  244. package/lib/core/HttpResponse.js.map +0 -1
  245. package/lib/core/HttpResponse.mjs +0 -159
  246. package/lib/core/HttpResponse.mjs.map +0 -1
  247. package/lib/core/bypass.d.mts +0 -16
  248. package/lib/core/bypass.js +0 -42
  249. package/lib/core/bypass.js.map +0 -1
  250. package/lib/core/bypass.mjs +0 -22
  251. package/lib/core/bypass.mjs.map +0 -1
  252. package/lib/core/delay.d.mts +0 -18
  253. package/lib/core/delay.d.ts +0 -18
  254. package/lib/core/delay.js +0 -77
  255. package/lib/core/delay.js.map +0 -1
  256. package/lib/core/delay.mjs +0 -57
  257. package/lib/core/delay.mjs.map +0 -1
  258. package/lib/core/experimental/compat.d.mts +0 -17
  259. package/lib/core/experimental/compat.d.ts +0 -17
  260. package/lib/core/experimental/compat.js +0 -55
  261. package/lib/core/experimental/compat.js.map +0 -1
  262. package/lib/core/experimental/compat.mjs +0 -37
  263. package/lib/core/experimental/compat.mjs.map +0 -1
  264. package/lib/core/experimental/define-network.d.mts +0 -75
  265. package/lib/core/experimental/define-network.d.ts +0 -75
  266. package/lib/core/experimental/define-network.js +0 -134
  267. package/lib/core/experimental/define-network.js.map +0 -1
  268. package/lib/core/experimental/define-network.mjs +0 -119
  269. package/lib/core/experimental/define-network.mjs.map +0 -1
  270. package/lib/core/experimental/frames/http-frame.d.mts +0 -77
  271. package/lib/core/experimental/frames/http-frame.d.ts +0 -77
  272. package/lib/core/experimental/frames/http-frame.js +0 -197
  273. package/lib/core/experimental/frames/http-frame.js.map +0 -1
  274. package/lib/core/experimental/frames/http-frame.mjs +0 -181
  275. package/lib/core/experimental/frames/http-frame.mjs.map +0 -1
  276. package/lib/core/experimental/frames/network-frame.d.mts +0 -12
  277. package/lib/core/experimental/frames/network-frame.d.ts +0 -12
  278. package/lib/core/experimental/frames/network-frame.js +0 -35
  279. package/lib/core/experimental/frames/network-frame.js.map +0 -1
  280. package/lib/core/experimental/frames/network-frame.mjs +0 -15
  281. package/lib/core/experimental/frames/network-frame.mjs.map +0 -1
  282. package/lib/core/experimental/frames/websocket-frame.d.mts +0 -55
  283. package/lib/core/experimental/frames/websocket-frame.d.ts +0 -55
  284. package/lib/core/experimental/frames/websocket-frame.js +0 -131
  285. package/lib/core/experimental/frames/websocket-frame.js.map +0 -1
  286. package/lib/core/experimental/frames/websocket-frame.mjs +0 -118
  287. package/lib/core/experimental/frames/websocket-frame.mjs.map +0 -1
  288. package/lib/core/experimental/handlers-controller.d.mts +0 -36
  289. package/lib/core/experimental/handlers-controller.d.ts +0 -36
  290. package/lib/core/experimental/handlers-controller.js +0 -146
  291. package/lib/core/experimental/handlers-controller.js.map +0 -1
  292. package/lib/core/experimental/handlers-controller.mjs +0 -126
  293. package/lib/core/experimental/handlers-controller.mjs.map +0 -1
  294. package/lib/core/experimental/index.d.mts +0 -17
  295. package/lib/core/experimental/index.js.map +0 -1
  296. package/lib/core/experimental/index.mjs +0 -27
  297. package/lib/core/experimental/index.mjs.map +0 -1
  298. package/lib/core/experimental/on-unhandled-frame.d.mts +0 -12
  299. package/lib/core/experimental/on-unhandled-frame.d.ts +0 -12
  300. package/lib/core/experimental/on-unhandled-frame.js +0 -91
  301. package/lib/core/experimental/on-unhandled-frame.js.map +0 -1
  302. package/lib/core/experimental/on-unhandled-frame.mjs +0 -71
  303. package/lib/core/experimental/on-unhandled-frame.mjs.map +0 -1
  304. package/lib/core/experimental/request-utils.d.mts +0 -12
  305. package/lib/core/experimental/request-utils.d.ts +0 -12
  306. package/lib/core/experimental/request-utils.js +0 -50
  307. package/lib/core/experimental/request-utils.js.map +0 -1
  308. package/lib/core/experimental/request-utils.mjs +0 -30
  309. package/lib/core/experimental/request-utils.mjs.map +0 -1
  310. package/lib/core/experimental/setup-api.d.mts +0 -33
  311. package/lib/core/experimental/setup-api.d.ts +0 -33
  312. package/lib/core/experimental/setup-api.js +0 -58
  313. package/lib/core/experimental/setup-api.js.map +0 -1
  314. package/lib/core/experimental/setup-api.mjs +0 -40
  315. package/lib/core/experimental/setup-api.mjs.map +0 -1
  316. package/lib/core/experimental/sources/interceptor-source.d.mts +0 -28
  317. package/lib/core/experimental/sources/interceptor-source.d.ts +0 -28
  318. package/lib/core/experimental/sources/interceptor-source.js +0 -155
  319. package/lib/core/experimental/sources/interceptor-source.js.map +0 -1
  320. package/lib/core/experimental/sources/interceptor-source.mjs +0 -135
  321. package/lib/core/experimental/sources/interceptor-source.mjs.map +0 -1
  322. package/lib/core/experimental/sources/network-source.d.mts +0 -31
  323. package/lib/core/experimental/sources/network-source.d.ts +0 -31
  324. package/lib/core/experimental/sources/network-source.js +0 -51
  325. package/lib/core/experimental/sources/network-source.js.map +0 -1
  326. package/lib/core/experimental/sources/network-source.mjs +0 -32
  327. package/lib/core/experimental/sources/network-source.mjs.map +0 -1
  328. package/lib/core/getResponse.d.mts +0 -18
  329. package/lib/core/getResponse.d.ts +0 -18
  330. package/lib/core/getResponse.js +0 -35
  331. package/lib/core/getResponse.js.map +0 -1
  332. package/lib/core/getResponse.mjs +0 -17
  333. package/lib/core/getResponse.mjs.map +0 -1
  334. package/lib/core/graphql.d.mts +0 -76
  335. package/lib/core/graphql.d.ts +0 -76
  336. package/lib/core/graphql.js +0 -91
  337. package/lib/core/graphql.js.map +0 -1
  338. package/lib/core/graphql.mjs +0 -74
  339. package/lib/core/graphql.mjs.map +0 -1
  340. package/lib/core/handlers/GraphQLHandler.d.mts +0 -6
  341. package/lib/core/handlers/GraphQLHandler.d.ts +0 -6
  342. package/lib/core/handlers/GraphQLHandler.js +0 -232
  343. package/lib/core/handlers/GraphQLHandler.js.map +0 -1
  344. package/lib/core/handlers/GraphQLHandler.mjs +0 -221
  345. package/lib/core/handlers/GraphQLHandler.mjs.map +0 -1
  346. package/lib/core/handlers/HttpHandler.d.mts +0 -75
  347. package/lib/core/handlers/HttpHandler.d.ts +0 -75
  348. package/lib/core/handlers/HttpHandler.js +0 -129
  349. package/lib/core/handlers/HttpHandler.js.map +0 -1
  350. package/lib/core/handlers/HttpHandler.mjs +0 -113
  351. package/lib/core/handlers/HttpHandler.mjs.map +0 -1
  352. package/lib/core/handlers/RequestHandler.d.mts +0 -6
  353. package/lib/core/handlers/RequestHandler.d.ts +0 -6
  354. package/lib/core/handlers/RequestHandler.js +0 -300
  355. package/lib/core/handlers/RequestHandler.js.map +0 -1
  356. package/lib/core/handlers/RequestHandler.mjs +0 -283
  357. package/lib/core/handlers/RequestHandler.mjs.map +0 -1
  358. package/lib/core/handlers/WebSocketHandler.d.mts +0 -49
  359. package/lib/core/handlers/WebSocketHandler.d.ts +0 -49
  360. package/lib/core/handlers/WebSocketHandler.js +0 -178
  361. package/lib/core/handlers/WebSocketHandler.js.map +0 -1
  362. package/lib/core/handlers/WebSocketHandler.mjs +0 -160
  363. package/lib/core/handlers/WebSocketHandler.mjs.map +0 -1
  364. package/lib/core/http.d.mts +0 -31
  365. package/lib/core/http.js +0 -41
  366. package/lib/core/http.js.map +0 -1
  367. package/lib/core/http.mjs +0 -25
  368. package/lib/core/http.mjs.map +0 -1
  369. package/lib/core/index.d.mts +0 -27
  370. package/lib/core/index.js.map +0 -1
  371. package/lib/core/index.mjs +0 -52
  372. package/lib/core/index.mjs.map +0 -1
  373. package/lib/core/isCommonAssetRequest.d.mts +0 -20
  374. package/lib/core/isCommonAssetRequest.d.ts +0 -20
  375. package/lib/core/isCommonAssetRequest.js +0 -42
  376. package/lib/core/isCommonAssetRequest.js.map +0 -1
  377. package/lib/core/isCommonAssetRequest.mjs +0 -22
  378. package/lib/core/isCommonAssetRequest.mjs.map +0 -1
  379. package/lib/core/on-unhandled-frame-0KmwUmeV.d.ts +0 -56
  380. package/lib/core/on-unhandled-frame-gkokW4Rr.d.mts +0 -56
  381. package/lib/core/passthrough.d.mts +0 -24
  382. package/lib/core/passthrough.d.ts +0 -24
  383. package/lib/core/passthrough.js +0 -33
  384. package/lib/core/passthrough.js.map +0 -1
  385. package/lib/core/passthrough.mjs +0 -13
  386. package/lib/core/passthrough.mjs.map +0 -1
  387. package/lib/core/sharedOptions.d.mts +0 -68
  388. package/lib/core/sharedOptions.d.ts +0 -68
  389. package/lib/core/sharedOptions.js +0 -17
  390. package/lib/core/sharedOptions.js.map +0 -1
  391. package/lib/core/sharedOptions.mjs +0 -1
  392. package/lib/core/sharedOptions.mjs.map +0 -1
  393. package/lib/core/sse.d.mts +0 -102
  394. package/lib/core/sse.d.ts +0 -102
  395. package/lib/core/sse.js +0 -672
  396. package/lib/core/sse.js.map +0 -1
  397. package/lib/core/sse.mjs +0 -654
  398. package/lib/core/sse.mjs.map +0 -1
  399. package/lib/core/typeUtils.d.mts +0 -12
  400. package/lib/core/typeUtils.d.ts +0 -12
  401. package/lib/core/typeUtils.js +0 -17
  402. package/lib/core/typeUtils.js.map +0 -1
  403. package/lib/core/typeUtils.mjs +0 -1
  404. package/lib/core/typeUtils.mjs.map +0 -1
  405. package/lib/core/utils/HttpResponse/decorators.d.mts +0 -17
  406. package/lib/core/utils/HttpResponse/decorators.d.ts +0 -17
  407. package/lib/core/utils/HttpResponse/decorators.js +0 -71
  408. package/lib/core/utils/HttpResponse/decorators.js.map +0 -1
  409. package/lib/core/utils/HttpResponse/decorators.mjs +0 -41
  410. package/lib/core/utils/HttpResponse/decorators.mjs.map +0 -1
  411. package/lib/core/utils/cookieStore.d.mts +0 -13
  412. package/lib/core/utils/cookieStore.d.ts +0 -13
  413. package/lib/core/utils/cookieStore.js +0 -90
  414. package/lib/core/utils/cookieStore.js.map +0 -1
  415. package/lib/core/utils/cookieStore.mjs +0 -74
  416. package/lib/core/utils/cookieStore.mjs.map +0 -1
  417. package/lib/core/utils/executeHandlers.d.mts +0 -6
  418. package/lib/core/utils/executeHandlers.d.ts +0 -6
  419. package/lib/core/utils/executeHandlers.js +0 -51
  420. package/lib/core/utils/executeHandlers.js.map +0 -1
  421. package/lib/core/utils/executeHandlers.mjs +0 -31
  422. package/lib/core/utils/executeHandlers.mjs.map +0 -1
  423. package/lib/core/utils/handleRequest.d.mts +0 -30
  424. package/lib/core/utils/handleRequest.d.ts +0 -30
  425. package/lib/core/utils/handleRequest.js +0 -76
  426. package/lib/core/utils/handleRequest.js.map +0 -1
  427. package/lib/core/utils/handleRequest.mjs +0 -58
  428. package/lib/core/utils/handleRequest.mjs.map +0 -1
  429. package/lib/core/utils/internal/Disposable.d.mts +0 -7
  430. package/lib/core/utils/internal/Disposable.d.ts +0 -7
  431. package/lib/core/utils/internal/Disposable.js +0 -51
  432. package/lib/core/utils/internal/Disposable.js.map +0 -1
  433. package/lib/core/utils/internal/Disposable.mjs +0 -31
  434. package/lib/core/utils/internal/Disposable.mjs.map +0 -1
  435. package/lib/core/utils/internal/attachSiblingHandlers.d.mts +0 -15
  436. package/lib/core/utils/internal/attachSiblingHandlers.d.ts +0 -15
  437. package/lib/core/utils/internal/attachSiblingHandlers.js +0 -44
  438. package/lib/core/utils/internal/attachSiblingHandlers.js.map +0 -1
  439. package/lib/core/utils/internal/attachSiblingHandlers.mjs +0 -24
  440. package/lib/core/utils/internal/attachSiblingHandlers.mjs.map +0 -1
  441. package/lib/core/utils/internal/checkGlobals.d.mts +0 -3
  442. package/lib/core/utils/internal/checkGlobals.d.ts +0 -3
  443. package/lib/core/utils/internal/checkGlobals.js +0 -34
  444. package/lib/core/utils/internal/checkGlobals.js.map +0 -1
  445. package/lib/core/utils/internal/checkGlobals.mjs +0 -14
  446. package/lib/core/utils/internal/checkGlobals.mjs.map +0 -1
  447. package/lib/core/utils/internal/devUtils.d.mts +0 -28
  448. package/lib/core/utils/internal/devUtils.d.ts +0 -28
  449. package/lib/core/utils/internal/devUtils.js +0 -48
  450. package/lib/core/utils/internal/devUtils.js.map +0 -1
  451. package/lib/core/utils/internal/devUtils.mjs +0 -28
  452. package/lib/core/utils/internal/devUtils.mjs.map +0 -1
  453. package/lib/core/utils/internal/getCallFrame.d.mts +0 -6
  454. package/lib/core/utils/internal/getCallFrame.d.ts +0 -6
  455. package/lib/core/utils/internal/getCallFrame.js +0 -41
  456. package/lib/core/utils/internal/getCallFrame.js.map +0 -1
  457. package/lib/core/utils/internal/getCallFrame.mjs +0 -21
  458. package/lib/core/utils/internal/getCallFrame.mjs.map +0 -1
  459. package/lib/core/utils/internal/hasRefCounted.d.mts +0 -3
  460. package/lib/core/utils/internal/hasRefCounted.d.ts +0 -3
  461. package/lib/core/utils/internal/hasRefCounted.js +0 -34
  462. package/lib/core/utils/internal/hasRefCounted.js.map +0 -1
  463. package/lib/core/utils/internal/hasRefCounted.mjs +0 -14
  464. package/lib/core/utils/internal/hasRefCounted.mjs.map +0 -1
  465. package/lib/core/utils/internal/isHandlerKind.d.mts +0 -19
  466. package/lib/core/utils/internal/isHandlerKind.d.ts +0 -19
  467. package/lib/core/utils/internal/isHandlerKind.js +0 -30
  468. package/lib/core/utils/internal/isHandlerKind.js.map +0 -1
  469. package/lib/core/utils/internal/isHandlerKind.mjs +0 -10
  470. package/lib/core/utils/internal/isHandlerKind.mjs.map +0 -1
  471. package/lib/core/utils/internal/isIterable.d.mts +0 -20
  472. package/lib/core/utils/internal/isIterable.d.ts +0 -20
  473. package/lib/core/utils/internal/isIterable.js +0 -30
  474. package/lib/core/utils/internal/isIterable.js.map +0 -1
  475. package/lib/core/utils/internal/isIterable.mjs +0 -10
  476. package/lib/core/utils/internal/isIterable.mjs.map +0 -1
  477. package/lib/core/utils/internal/isObject.d.mts +0 -6
  478. package/lib/core/utils/internal/isObject.d.ts +0 -6
  479. package/lib/core/utils/internal/isObject.js +0 -27
  480. package/lib/core/utils/internal/isObject.js.map +0 -1
  481. package/lib/core/utils/internal/isObject.mjs +0 -7
  482. package/lib/core/utils/internal/isObject.mjs.map +0 -1
  483. package/lib/core/utils/internal/isStringEqual.d.mts +0 -6
  484. package/lib/core/utils/internal/isStringEqual.d.ts +0 -6
  485. package/lib/core/utils/internal/isStringEqual.js +0 -27
  486. package/lib/core/utils/internal/isStringEqual.js.map +0 -1
  487. package/lib/core/utils/internal/isStringEqual.mjs +0 -7
  488. package/lib/core/utils/internal/isStringEqual.mjs.map +0 -1
  489. package/lib/core/utils/internal/jsonParse.d.mts +0 -7
  490. package/lib/core/utils/internal/jsonParse.d.ts +0 -7
  491. package/lib/core/utils/internal/jsonParse.js +0 -31
  492. package/lib/core/utils/internal/jsonParse.js.map +0 -1
  493. package/lib/core/utils/internal/jsonParse.mjs +0 -11
  494. package/lib/core/utils/internal/jsonParse.mjs.map +0 -1
  495. package/lib/core/utils/internal/mergeRight.d.mts +0 -7
  496. package/lib/core/utils/internal/mergeRight.d.ts +0 -7
  497. package/lib/core/utils/internal/mergeRight.js +0 -43
  498. package/lib/core/utils/internal/mergeRight.js.map +0 -1
  499. package/lib/core/utils/internal/mergeRight.mjs +0 -23
  500. package/lib/core/utils/internal/mergeRight.mjs.map +0 -1
  501. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +0 -6
  502. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +0 -6
  503. package/lib/core/utils/internal/parseGraphQLRequest.js +0 -146
  504. package/lib/core/utils/internal/parseGraphQLRequest.js.map +0 -1
  505. package/lib/core/utils/internal/parseGraphQLRequest.mjs +0 -129
  506. package/lib/core/utils/internal/parseGraphQLRequest.mjs.map +0 -1
  507. package/lib/core/utils/internal/parseMultipartData.d.mts +0 -14
  508. package/lib/core/utils/internal/parseMultipartData.d.ts +0 -14
  509. package/lib/core/utils/internal/parseMultipartData.js +0 -84
  510. package/lib/core/utils/internal/parseMultipartData.js.map +0 -1
  511. package/lib/core/utils/internal/parseMultipartData.mjs +0 -64
  512. package/lib/core/utils/internal/parseMultipartData.mjs.map +0 -1
  513. package/lib/core/utils/internal/pipeEvents.d.mts +0 -8
  514. package/lib/core/utils/internal/pipeEvents.d.ts +0 -8
  515. package/lib/core/utils/internal/pipeEvents.js +0 -37
  516. package/lib/core/utils/internal/pipeEvents.js.map +0 -1
  517. package/lib/core/utils/internal/pipeEvents.mjs +0 -17
  518. package/lib/core/utils/internal/pipeEvents.mjs.map +0 -1
  519. package/lib/core/utils/internal/toReadonlyArray.d.mts +0 -6
  520. package/lib/core/utils/internal/toReadonlyArray.d.ts +0 -6
  521. package/lib/core/utils/internal/toReadonlyArray.js +0 -29
  522. package/lib/core/utils/internal/toReadonlyArray.js.map +0 -1
  523. package/lib/core/utils/internal/toReadonlyArray.mjs +0 -9
  524. package/lib/core/utils/internal/toReadonlyArray.mjs.map +0 -1
  525. package/lib/core/utils/internal/tryCatch.d.mts +0 -3
  526. package/lib/core/utils/internal/tryCatch.d.ts +0 -3
  527. package/lib/core/utils/internal/tryCatch.js +0 -32
  528. package/lib/core/utils/internal/tryCatch.js.map +0 -1
  529. package/lib/core/utils/internal/tryCatch.mjs +0 -12
  530. package/lib/core/utils/internal/tryCatch.mjs.map +0 -1
  531. package/lib/core/utils/logging/getStatusCodeColor.d.mts +0 -11
  532. package/lib/core/utils/logging/getStatusCodeColor.d.ts +0 -11
  533. package/lib/core/utils/logging/getStatusCodeColor.js +0 -40
  534. package/lib/core/utils/logging/getStatusCodeColor.js.map +0 -1
  535. package/lib/core/utils/logging/getStatusCodeColor.mjs +0 -20
  536. package/lib/core/utils/logging/getStatusCodeColor.mjs.map +0 -1
  537. package/lib/core/utils/logging/getTimestamp.d.mts +0 -9
  538. package/lib/core/utils/logging/getTimestamp.d.ts +0 -9
  539. package/lib/core/utils/logging/getTimestamp.js +0 -32
  540. package/lib/core/utils/logging/getTimestamp.js.map +0 -1
  541. package/lib/core/utils/logging/getTimestamp.mjs +0 -12
  542. package/lib/core/utils/logging/getTimestamp.mjs.map +0 -1
  543. package/lib/core/utils/logging/serializeRequest.d.mts +0 -12
  544. package/lib/core/utils/logging/serializeRequest.d.ts +0 -12
  545. package/lib/core/utils/logging/serializeRequest.js +0 -34
  546. package/lib/core/utils/logging/serializeRequest.js.map +0 -1
  547. package/lib/core/utils/logging/serializeRequest.mjs +0 -14
  548. package/lib/core/utils/logging/serializeRequest.mjs.map +0 -1
  549. package/lib/core/utils/logging/serializeResponse.d.mts +0 -9
  550. package/lib/core/utils/logging/serializeResponse.d.ts +0 -9
  551. package/lib/core/utils/logging/serializeResponse.js +0 -48
  552. package/lib/core/utils/logging/serializeResponse.js.map +0 -1
  553. package/lib/core/utils/logging/serializeResponse.mjs +0 -18
  554. package/lib/core/utils/logging/serializeResponse.mjs.map +0 -1
  555. package/lib/core/utils/matching/matchRequestUrl.d.mts +0 -20
  556. package/lib/core/utils/matching/matchRequestUrl.d.ts +0 -20
  557. package/lib/core/utils/matching/matchRequestUrl.js +0 -55
  558. package/lib/core/utils/matching/matchRequestUrl.js.map +0 -1
  559. package/lib/core/utils/matching/matchRequestUrl.mjs +0 -35
  560. package/lib/core/utils/matching/matchRequestUrl.mjs.map +0 -1
  561. package/lib/core/utils/matching/normalizePath.d.mts +0 -13
  562. package/lib/core/utils/matching/normalizePath.d.ts +0 -13
  563. package/lib/core/utils/matching/normalizePath.js +0 -33
  564. package/lib/core/utils/matching/normalizePath.js.map +0 -1
  565. package/lib/core/utils/matching/normalizePath.mjs +0 -13
  566. package/lib/core/utils/matching/normalizePath.mjs.map +0 -1
  567. package/lib/core/utils/request/getAllAcceptedMimeTypes.d.mts +0 -14
  568. package/lib/core/utils/request/getAllAcceptedMimeTypes.d.ts +0 -14
  569. package/lib/core/utils/request/getAllAcceptedMimeTypes.js +0 -61
  570. package/lib/core/utils/request/getAllAcceptedMimeTypes.js.map +0 -1
  571. package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs +0 -41
  572. package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs.map +0 -1
  573. package/lib/core/utils/request/getRequestCookies.d.mts +0 -3
  574. package/lib/core/utils/request/getRequestCookies.d.ts +0 -3
  575. package/lib/core/utils/request/getRequestCookies.js +0 -79
  576. package/lib/core/utils/request/getRequestCookies.js.map +0 -1
  577. package/lib/core/utils/request/getRequestCookies.mjs +0 -62
  578. package/lib/core/utils/request/getRequestCookies.mjs.map +0 -1
  579. package/lib/core/utils/request/onUnhandledRequest.d.mts +0 -9
  580. package/lib/core/utils/request/onUnhandledRequest.d.ts +0 -9
  581. package/lib/core/utils/request/onUnhandledRequest.js +0 -76
  582. package/lib/core/utils/request/onUnhandledRequest.js.map +0 -1
  583. package/lib/core/utils/request/onUnhandledRequest.mjs +0 -56
  584. package/lib/core/utils/request/onUnhandledRequest.mjs.map +0 -1
  585. package/lib/core/utils/request/storeResponseCookies.d.mts +0 -3
  586. package/lib/core/utils/request/storeResponseCookies.d.ts +0 -3
  587. package/lib/core/utils/request/storeResponseCookies.js +0 -32
  588. package/lib/core/utils/request/storeResponseCookies.js.map +0 -1
  589. package/lib/core/utils/request/storeResponseCookies.mjs +0 -12
  590. package/lib/core/utils/request/storeResponseCookies.mjs.map +0 -1
  591. package/lib/core/utils/request/toPublicUrl.d.mts +0 -7
  592. package/lib/core/utils/request/toPublicUrl.d.ts +0 -7
  593. package/lib/core/utils/request/toPublicUrl.js +0 -31
  594. package/lib/core/utils/request/toPublicUrl.js.map +0 -1
  595. package/lib/core/utils/request/toPublicUrl.mjs +0 -11
  596. package/lib/core/utils/request/toPublicUrl.mjs.map +0 -1
  597. package/lib/core/utils/toResponseInit.d.mts +0 -3
  598. package/lib/core/utils/toResponseInit.d.ts +0 -3
  599. package/lib/core/utils/toResponseInit.js +0 -31
  600. package/lib/core/utils/toResponseInit.js.map +0 -1
  601. package/lib/core/utils/toResponseInit.mjs +0 -11
  602. package/lib/core/utils/toResponseInit.mjs.map +0 -1
  603. package/lib/core/utils/url/cleanUrl.d.mts +0 -7
  604. package/lib/core/utils/url/cleanUrl.d.ts +0 -7
  605. package/lib/core/utils/url/cleanUrl.js +0 -31
  606. package/lib/core/utils/url/cleanUrl.js.map +0 -1
  607. package/lib/core/utils/url/cleanUrl.mjs +0 -11
  608. package/lib/core/utils/url/cleanUrl.mjs.map +0 -1
  609. package/lib/core/utils/url/getAbsoluteUrl.d.mts +0 -6
  610. package/lib/core/utils/url/getAbsoluteUrl.d.ts +0 -6
  611. package/lib/core/utils/url/getAbsoluteUrl.js +0 -38
  612. package/lib/core/utils/url/getAbsoluteUrl.js.map +0 -1
  613. package/lib/core/utils/url/getAbsoluteUrl.mjs +0 -18
  614. package/lib/core/utils/url/getAbsoluteUrl.mjs.map +0 -1
  615. package/lib/core/utils/url/isAbsoluteUrl.d.mts +0 -6
  616. package/lib/core/utils/url/isAbsoluteUrl.d.ts +0 -6
  617. package/lib/core/utils/url/isAbsoluteUrl.js +0 -27
  618. package/lib/core/utils/url/isAbsoluteUrl.js.map +0 -1
  619. package/lib/core/utils/url/isAbsoluteUrl.mjs +0 -7
  620. package/lib/core/utils/url/isAbsoluteUrl.mjs.map +0 -1
  621. package/lib/core/ws/WebSocketClientManager.d.mts +0 -65
  622. package/lib/core/ws/WebSocketClientManager.d.ts +0 -65
  623. package/lib/core/ws/WebSocketClientManager.js +0 -163
  624. package/lib/core/ws/WebSocketClientManager.js.map +0 -1
  625. package/lib/core/ws/WebSocketClientManager.mjs +0 -143
  626. package/lib/core/ws/WebSocketClientManager.mjs.map +0 -1
  627. package/lib/core/ws/WebSocketClientStore.d.mts +0 -13
  628. package/lib/core/ws/WebSocketClientStore.d.ts +0 -13
  629. package/lib/core/ws/WebSocketClientStore.js +0 -26
  630. package/lib/core/ws/WebSocketClientStore.js.map +0 -1
  631. package/lib/core/ws/WebSocketClientStore.mjs +0 -6
  632. package/lib/core/ws/WebSocketClientStore.mjs.map +0 -1
  633. package/lib/core/ws/WebSocketIndexedDBClientStore.d.mts +0 -14
  634. package/lib/core/ws/WebSocketIndexedDBClientStore.d.ts +0 -14
  635. package/lib/core/ws/WebSocketIndexedDBClientStore.js +0 -131
  636. package/lib/core/ws/WebSocketIndexedDBClientStore.js.map +0 -1
  637. package/lib/core/ws/WebSocketIndexedDBClientStore.mjs +0 -111
  638. package/lib/core/ws/WebSocketIndexedDBClientStore.mjs.map +0 -1
  639. package/lib/core/ws/WebSocketMemoryClientStore.d.mts +0 -12
  640. package/lib/core/ws/WebSocketMemoryClientStore.d.ts +0 -12
  641. package/lib/core/ws/WebSocketMemoryClientStore.js +0 -42
  642. package/lib/core/ws/WebSocketMemoryClientStore.js.map +0 -1
  643. package/lib/core/ws/WebSocketMemoryClientStore.mjs +0 -22
  644. package/lib/core/ws/WebSocketMemoryClientStore.mjs.map +0 -1
  645. package/lib/core/ws/handleWebSocketEvent.d.mts +0 -20
  646. package/lib/core/ws/handleWebSocketEvent.d.ts +0 -20
  647. package/lib/core/ws/handleWebSocketEvent.js +0 -61
  648. package/lib/core/ws/handleWebSocketEvent.js.map +0 -1
  649. package/lib/core/ws/handleWebSocketEvent.mjs +0 -43
  650. package/lib/core/ws/handleWebSocketEvent.mjs.map +0 -1
  651. package/lib/core/ws/utils/attachWebSocketLogger.d.mts +0 -18
  652. package/lib/core/ws/utils/attachWebSocketLogger.d.ts +0 -18
  653. package/lib/core/ws/utils/attachWebSocketLogger.js +0 -228
  654. package/lib/core/ws/utils/attachWebSocketLogger.js.map +0 -1
  655. package/lib/core/ws/utils/attachWebSocketLogger.mjs +0 -208
  656. package/lib/core/ws/utils/attachWebSocketLogger.mjs.map +0 -1
  657. package/lib/core/ws/utils/getMessageLength.d.mts +0 -11
  658. package/lib/core/ws/utils/getMessageLength.d.ts +0 -11
  659. package/lib/core/ws/utils/getMessageLength.js +0 -34
  660. package/lib/core/ws/utils/getMessageLength.js.map +0 -1
  661. package/lib/core/ws/utils/getMessageLength.mjs +0 -14
  662. package/lib/core/ws/utils/getMessageLength.mjs.map +0 -1
  663. package/lib/core/ws/utils/getPublicData.d.mts +0 -5
  664. package/lib/core/ws/utils/getPublicData.d.ts +0 -5
  665. package/lib/core/ws/utils/getPublicData.js +0 -37
  666. package/lib/core/ws/utils/getPublicData.js.map +0 -1
  667. package/lib/core/ws/utils/getPublicData.mjs +0 -17
  668. package/lib/core/ws/utils/getPublicData.mjs.map +0 -1
  669. package/lib/core/ws/utils/truncateMessage.d.mts +0 -3
  670. package/lib/core/ws/utils/truncateMessage.d.ts +0 -3
  671. package/lib/core/ws/utils/truncateMessage.js +0 -31
  672. package/lib/core/ws/utils/truncateMessage.js.map +0 -1
  673. package/lib/core/ws/utils/truncateMessage.mjs +0 -11
  674. package/lib/core/ws/utils/truncateMessage.mjs.map +0 -1
  675. package/lib/core/ws/webSocketInterceptor.d.mts +0 -5
  676. package/lib/core/ws/webSocketInterceptor.d.ts +0 -5
  677. package/lib/core/ws/webSocketInterceptor.js +0 -26
  678. package/lib/core/ws/webSocketInterceptor.js.map +0 -1
  679. package/lib/core/ws/webSocketInterceptor.mjs +0 -6
  680. package/lib/core/ws/webSocketInterceptor.mjs.map +0 -1
  681. package/lib/core/ws.d.mts +0 -88
  682. package/lib/core/ws.d.ts +0 -88
  683. package/lib/core/ws.js +0 -94
  684. package/lib/core/ws.js.map +0 -1
  685. package/lib/core/ws.mjs +0 -80
  686. package/lib/core/ws.mjs.map +0 -1
  687. package/lib/native/index.d.mts +0 -66
  688. package/lib/native/index.d.ts +0 -66
  689. package/lib/native/index.js +0 -88
  690. package/lib/native/index.js.map +0 -1
  691. package/lib/native/index.mjs +0 -67
  692. package/lib/native/index.mjs.map +0 -1
  693. package/lib/node/index.d.mts +0 -113
  694. package/lib/node/index.mjs +0 -185
  695. package/lib/node/index.mjs.map +0 -1
  696. package/lib/shims/cookie.d.mts +0 -7
  697. package/lib/shims/cookie.d.ts +0 -7
  698. package/lib/shims/cookie.js +0 -294
  699. package/lib/shims/cookie.mjs +0 -286
  700. package/lib/shims/statuses.d.mts +0 -6
  701. package/lib/shims/statuses.d.ts +0 -6
  702. package/lib/shims/statuses.js +0 -195
  703. package/lib/shims/statuses.mjs +0 -187
  704. package/native/package.json +0 -30
  705. package/node/package.json +0 -33
  706. package/src/browser/utils/pruneGetRequestBody.test.ts +0 -51
  707. package/src/browser/utils/pruneGetRequestBody.ts +0 -21
  708. package/src/core/experimental/compat.ts +0 -50
  709. package/src/core/experimental/setup-api.ts +0 -55
  710. package/src/core/graphql.test.ts +0 -11
  711. package/src/core/graphql.ts +0 -136
  712. package/src/core/passthrough.test.ts +0 -11
  713. package/src/core/passthrough.ts +0 -25
  714. package/src/core/sharedOptions.ts +0 -71
  715. package/src/core/typeUtils.ts +0 -26
  716. package/src/core/utils/handleRequest.test.ts +0 -574
  717. package/src/core/utils/handleRequest.ts +0 -117
  718. package/src/core/utils/internal/checkGlobals.ts +0 -17
  719. package/src/core/utils/internal/isHandlerKind.test.ts +0 -62
  720. package/src/core/utils/internal/isHandlerKind.ts +0 -17
  721. package/src/core/utils/internal/isIterable.ts +0 -32
  722. package/src/core/utils/internal/mergeRight.test.ts +0 -43
  723. package/src/core/utils/internal/mergeRight.ts +0 -30
  724. package/src/core/utils/internal/pipeEvents.test.ts +0 -14
  725. package/src/core/utils/internal/pipeEvents.ts +0 -26
  726. package/src/core/utils/internal/tryCatch.test.ts +0 -29
  727. package/src/core/utils/internal/tryCatch.ts +0 -11
  728. package/src/core/utils/matching/matchRequestUrl.test.ts +0 -267
  729. package/src/core/utils/matching/matchRequestUrl.ts +0 -77
  730. package/src/core/utils/request/getRequestCookies.ts +0 -88
  731. package/src/core/utils/request/onUnhandledRequest.node.test.ts +0 -62
  732. package/src/core/utils/request/onUnhandledRequest.test.ts +0 -226
  733. package/src/core/utils/request/onUnhandledRequest.ts +0 -81
  734. package/src/core/utils/request/storeResponseCookies.ts +0 -15
  735. package/src/core/utils/url/cleanUrl.test.ts +0 -22
  736. package/src/core/utils/url/cleanUrl.ts +0 -16
  737. package/src/core/utils/url/isAbsoluteUrl.test.ts +0 -32
  738. package/src/core/ws/handleWebSocketEvent.ts +0 -68
  739. package/src/core/ws/utils/getPublicData.ts +0 -18
  740. package/src/core/ws/webSocketInterceptor.ts +0 -3
  741. package/src/native/index.ts +0 -44
  742. package/src/package.json +0 -3
  743. package/src/shims/cookie.ts +0 -7
  744. package/src/shims/statuses.ts +0 -6
  745. /package/src/browser/utils/{getAbsoluteWorkerUrl.ts → get-absolute-worker-url.ts} +0 -0
  746. /package/src/core/utils/internal/{devUtils.ts → dev-utils.ts} +0 -0
  747. /package/src/core/utils/internal/{isObject.ts → is-object.ts} +0 -0
  748. /package/src/core/utils/internal/{isStringEqual.ts → is-string-equal.ts} +0 -0
  749. /package/src/core/utils/internal/{jsonParse.ts → json-parse.ts} +0 -0
  750. /package/src/core/utils/internal/{toReadonlyArray.ts → to-readonly-array.ts} +0 -0
  751. /package/src/core/utils/logging/{getStatusCodeColor.ts → get-status-code-color.ts} +0 -0
  752. /package/src/core/utils/logging/{getTimestamp.ts → get-timestamp.ts} +0 -0
  753. /package/src/core/utils/logging/{serializeRequest.ts → serialize-request.ts} +0 -0
  754. /package/src/core/utils/request/{getAllAcceptedMimeTypes.ts → get-all-accepted-mime-types.ts} +0 -0
  755. /package/src/core/utils/request/{toPublicUrl.ts → to-public-url.ts} +0 -0
  756. /package/src/core/utils/{toResponseInit.ts → to-response-init.ts} +0 -0
  757. /package/src/core/utils/url/{isAbsoluteUrl.ts → is-absolute-url.ts} +0 -0
  758. /package/src/{core → http}/http.test.ts +0 -0
  759. /package/src/{core/ws/utils/truncateMessage.ts → ws/utils/truncate-message.ts} +0 -0
@@ -0,0 +1,14 @@
1
+ import { graphql } from './graphql'
2
+
3
+ test('exposes the link-first GraphQL api', () => {
4
+ expect(graphql).toBeDefined()
5
+ expect(Object.keys(graphql)).toEqual(['link'])
6
+
7
+ const link = graphql.link('https://api.example.com/graphql')
8
+ expect(Object.keys(link)).toEqual([
9
+ 'operation',
10
+ 'query',
11
+ 'mutation',
12
+ 'subscription',
13
+ ])
14
+ })
@@ -0,0 +1,179 @@
1
+ import type {
2
+ ResponseResolver,
3
+ RequestHandlerOptions,
4
+ } from '#core/handlers/request-handler'
5
+ import {
6
+ GraphQLHandler,
7
+ type GraphQLVariables,
8
+ type GraphQLOperationType,
9
+ type GraphQLResolverExtras,
10
+ type GraphQLResponseBody,
11
+ type GraphQLQuery,
12
+ type GraphQLPredicate,
13
+ } from './graphql-handler'
14
+ import { createRequestId } from '@mswjs/interceptors'
15
+ import { getAllRequestCookies } from '#core/utils/request/get-request-cookies'
16
+ import type { Path } from '#core/utils/matching/match-request-url'
17
+ import { attachSiblingHandlers } from '#core/utils/internal/attach-sibling-handlers'
18
+ import {
19
+ createGraphQLSubscriptionHandler,
20
+ type GraphQLSubscriptionHandlerFactory,
21
+ } from './graphql-subscription'
22
+
23
+ export type GraphQLRequestHandler = <
24
+ Query extends GraphQLQuery = GraphQLQuery,
25
+ Variables extends GraphQLVariables = GraphQLVariables,
26
+ >(
27
+ predicate: GraphQLPredicate<Query, Variables>,
28
+ resolver: GraphQLResponseResolver<
29
+ [Query] extends [never] ? GraphQLQuery : Query,
30
+ Variables
31
+ >,
32
+ options?: RequestHandlerOptions,
33
+ ) => GraphQLHandler
34
+
35
+ export type GraphQLOperationHandler = <
36
+ Query extends GraphQLQuery = GraphQLQuery,
37
+ Variables extends GraphQLVariables = GraphQLVariables,
38
+ >(
39
+ resolver: GraphQLResponseResolver<
40
+ [Query] extends [never] ? GraphQLQuery : Query,
41
+ Variables
42
+ >,
43
+ options?: RequestHandlerOptions,
44
+ ) => GraphQLHandler
45
+
46
+ export type GraphQLResponseResolver<
47
+ Query extends GraphQLQuery = GraphQLQuery,
48
+ Variables extends GraphQLVariables = GraphQLVariables,
49
+ > = ResponseResolver<
50
+ GraphQLResolverExtras<Variables>,
51
+ null,
52
+ GraphQLResponseBody<[Query] extends [never] ? GraphQLQuery : Query>
53
+ >
54
+
55
+ function createScopedGraphQLHandler(
56
+ operationType: GraphQLOperationType,
57
+ url: Path,
58
+ ): GraphQLRequestHandler {
59
+ return (predicate, resolver, options = {}) => {
60
+ return new GraphQLHandler(operationType, predicate, url, resolver, options)
61
+ }
62
+ }
63
+
64
+ function createGraphQLOperationHandler(
65
+ url: Path,
66
+ subscriptionFactory?: GraphQLSubscriptionHandlerFactory,
67
+ ): GraphQLOperationHandler {
68
+ /**
69
+ * @note An explicitly generic function so the subscription sibling
70
+ * can be created with the same `Query`/`Variables` types as the
71
+ * operation resolver, without casting its resolver info.
72
+ */
73
+ return <
74
+ Query extends GraphQLQuery = GraphQLQuery,
75
+ Variables extends GraphQLVariables = GraphQLVariables,
76
+ >(
77
+ resolver: GraphQLResponseResolver<
78
+ [Query] extends [never] ? GraphQLQuery : Query,
79
+ Variables
80
+ >,
81
+ options?: RequestHandlerOptions,
82
+ ): GraphQLHandler => {
83
+ const handler = new GraphQLHandler(
84
+ 'all',
85
+ new RegExp('.*'),
86
+ url,
87
+ resolver,
88
+ options,
89
+ )
90
+
91
+ if (!subscriptionFactory) {
92
+ return handler
93
+ }
94
+
95
+ // Attach a catch-all subscription handler as a sibling so the
96
+ // operation handler also matches GraphQL subscriptions over WebSocket.
97
+ // The subscription transport guarantees only actual GraphQL
98
+ // subscriptions are dispatched to it.
99
+ const subscriptionCatchAllHandler = subscriptionFactory<Query, Variables>(
100
+ new RegExp('.*'),
101
+ ({ operationName, subscription, request, finalize }) => {
102
+ /**
103
+ * @note Subscriptions are resolved imperatively, so the return
104
+ * value of the resolver is ignored. The request describes the
105
+ * WebSocket connection this subscription is multiplexed over.
106
+ */
107
+ resolver({
108
+ operationName,
109
+ query: subscription.query,
110
+ variables: subscription.variables,
111
+ cookies: getAllRequestCookies(request),
112
+ request,
113
+ requestId: createRequestId(),
114
+ finalize,
115
+ })
116
+ },
117
+ // Forward the handler options so a one-time operation handler is
118
+ // also consumed by the first subscription it matches.
119
+ options,
120
+ )
121
+
122
+ return attachSiblingHandlers(handler, [subscriptionCatchAllHandler])
123
+ }
124
+ }
125
+
126
+ export interface GraphQLLink {
127
+ query: GraphQLRequestHandler
128
+ mutation: GraphQLRequestHandler
129
+ operation: GraphQLOperationHandler
130
+ /**
131
+ * Intercept a GraphQL subscription.
132
+ *
133
+ * @example
134
+ * const api = graphql.link('https://api.example.com/graphql')
135
+ * api.subscription('OnPostAdded', ({ subscription }) => {
136
+ * subscription.publish({
137
+ * data: { postAdded: { id: 'abc-123' } },
138
+ * })
139
+ * })
140
+ */
141
+ subscription: GraphQLSubscriptionHandlerFactory
142
+ }
143
+
144
+ /**
145
+ * A namespace to intercept and mock GraphQL operations
146
+ *
147
+ * @example
148
+ * const api = graphql.link('https://api.example.com/graphql')
149
+ * api.query('GetUser', resolver)
150
+ * api.mutation('DeletePost', resolver)
151
+ *
152
+ * @see {@link https://mswjs.io/docs/api/graphql `graphql` API reference}
153
+ */
154
+ export const graphql = {
155
+ /**
156
+ * Intercepts GraphQL operations scoped by the given URL.
157
+ *
158
+ * @example
159
+ * const github = graphql.link('https://api.github.com/graphql')
160
+ * github.query('GetRepo', resolver)
161
+ *
162
+ * @see {@link https://mswjs.io/docs/api/graphql#graphqllinkurl `graphql.link()` API reference}
163
+ */
164
+ link(url: Path): GraphQLLink {
165
+ /**
166
+ * @note Create the subscription handler factory once per link so
167
+ * the `subscription()` and `operation()` handlers share the same
168
+ * underlying subscription transport (deduped by reference).
169
+ */
170
+ const subscription = createGraphQLSubscriptionHandler(url)
171
+
172
+ return {
173
+ operation: createGraphQLOperationHandler(url, subscription),
174
+ query: createScopedGraphQLHandler('query', url),
175
+ mutation: createScopedGraphQLHandler('mutation', url),
176
+ subscription,
177
+ }
178
+ },
179
+ }
@@ -0,0 +1,34 @@
1
+ export {
2
+ graphql,
3
+ type GraphQLRequestHandler,
4
+ type GraphQLOperationHandler,
5
+ type GraphQLResponseResolver,
6
+ type GraphQLLink,
7
+ } from './graphql'
8
+
9
+ export {
10
+ GraphQLHandler,
11
+ type GraphQLQuery,
12
+ type GraphQLVariables,
13
+ type GraphQLRequestBody,
14
+ type GraphQLResponseBody,
15
+ type GraphQLJsonRequestBody,
16
+ type GraphQLOperationType,
17
+ type GraphQLCustomPredicate,
18
+ } from './graphql-handler'
19
+
20
+ export type { ParsedGraphQLRequest } from './parse-graphql-request'
21
+
22
+ export {
23
+ createGraphQLSubscriptionHandler,
24
+ GraphQLSubscription,
25
+ GraphQLSubscriptionHandler,
26
+ GraphQLPassthroughSubscription,
27
+ type GraphQLSubscriptionHandlerFactory,
28
+ type GraphQLSubscriptionHandlerOptions,
29
+ type GraphQLSubscriptionName,
30
+ type GraphQLSubscriptionPayload,
31
+ type GraphQLSubscriptionResolver,
32
+ type GraphQLSubscriptionResolverInfo,
33
+ type GraphQLPassthroughSubscriptionEventMap,
34
+ } from './graphql-subscription'
@@ -1,10 +1,11 @@
1
- /**
2
- * @vitest-environment jsdom
3
- */
4
1
  import { encodeBuffer } from '@mswjs/interceptors'
5
- import { OperationTypeNode } from 'graphql'
6
- import type { ParsedGraphQLRequest } from './parseGraphQLRequest'
7
- import { parseGraphQLRequest } from './parseGraphQLRequest'
2
+ import { OperationTypeNode, parse } from 'graphql'
3
+ import {
4
+ parseDocumentNode,
5
+ parseGraphQLRequest,
6
+ type ParsedGraphQLQuery,
7
+ type ParsedGraphQLRequest,
8
+ } from './parse-graphql-request'
8
9
 
9
10
  test('returns true given a GraphQL-compatible request', async () => {
10
11
  const getRequest = new Request(
@@ -95,3 +96,43 @@ test('does not read the original request body', async () => {
95
96
  // is an internal operation that must not lock the body stream.
96
97
  expect(request.bodyUsed).toBe(false)
97
98
  })
99
+
100
+ describe('parseDocumentNode', () => {
101
+ const document = parse(`
102
+ query GetComments {
103
+ comments {
104
+ text
105
+ }
106
+ }
107
+
108
+ subscription OnCommentAdded {
109
+ commentAdded {
110
+ text
111
+ }
112
+ }
113
+ `)
114
+
115
+ test('returns the first operation given no operation name', () => {
116
+ expect(parseDocumentNode(document)).toEqual<ParsedGraphQLQuery>({
117
+ operationType: OperationTypeNode.QUERY,
118
+ operationName: 'GetComments',
119
+ })
120
+ })
121
+
122
+ test('returns the operation matching the given operation name', () => {
123
+ expect(
124
+ parseDocumentNode(document, 'OnCommentAdded'),
125
+ ).toEqual<ParsedGraphQLQuery>({
126
+ operationType: OperationTypeNode.SUBSCRIPTION,
127
+ operationName: 'OnCommentAdded',
128
+ })
129
+ })
130
+
131
+ test('resolves no operation given an unknown operation name', () => {
132
+ expect(parseDocumentNode(document, 'Unknown')).toEqual<ParsedGraphQLQuery>({
133
+ operationType: undefined,
134
+ // The requested name is echoed back for diagnostics.
135
+ operationName: 'Unknown',
136
+ })
137
+ })
138
+ })
@@ -1,21 +1,27 @@
1
- import type {
2
- DocumentNode,
3
- OperationDefinitionNode,
4
- OperationTypeNode,
1
+ import {
2
+ parse,
3
+ type DocumentNode,
4
+ type OperationDefinitionNode,
5
+ type OperationTypeNode,
5
6
  } from 'graphql'
6
- import type { GraphQLVariables } from '../../handlers/GraphQLHandler'
7
- import { toPublicUrl } from '../request/toPublicUrl'
8
- import { devUtils } from './devUtils'
9
- import { jsonParse } from './jsonParse'
10
- import { parseMultipartData } from './parseMultipartData'
7
+ import type { GraphQLVariables } from './graphql-handler'
8
+ import { toPublicUrl } from '#core/utils/request/to-public-url'
9
+ import { devUtils } from '#core/utils/internal/dev-utils'
10
+ import { jsonParse } from '#core/utils/internal/json-parse'
11
+ import { parseMultipartData } from '#core/utils/internal/parse-multipart-data'
11
12
 
12
13
  interface GraphQLInput {
13
14
  query: string | null
14
15
  variables?: GraphQLVariables
16
+ operationName?: string | null
15
17
  }
16
18
 
17
19
  export interface ParsedGraphQLQuery {
18
- operationType: OperationTypeNode
20
+ /**
21
+ * Undefined if the document has no operation matching the
22
+ * requested operation name.
23
+ */
24
+ operationType?: OperationTypeNode
19
25
  operationName?: string
20
26
  }
21
27
 
@@ -28,36 +34,51 @@ export type ParsedGraphQLRequest<
28
34
  })
29
35
  | undefined
30
36
 
31
- export function parseDocumentNode(node: DocumentNode): ParsedGraphQLQuery {
32
- const operationDef = node.definitions.find((definition) => {
37
+ export function parseDocumentNode(
38
+ node: DocumentNode,
39
+ operationName?: string | null,
40
+ ): ParsedGraphQLQuery {
41
+ const operationDefs = node.definitions.filter((definition) => {
33
42
  return definition.kind === 'OperationDefinition'
34
- }) as OperationDefinitionNode
43
+ }) as Array<OperationDefinitionNode>
44
+
45
+ /**
46
+ * @note A document may bundle multiple operations (e.g. the ones
47
+ * emitted by GraphQL Code Generator). Honor the requested operation
48
+ * name, and resolve nothing if the document has no such operation.
49
+ * Falling back to the first operation would silently resolve one the
50
+ * client never asked for.
51
+ */
52
+ const operationDef = operationName
53
+ ? operationDefs.find((definition) => {
54
+ return definition.name?.value === operationName
55
+ })
56
+ : operationDefs[0]
35
57
 
36
58
  return {
37
59
  operationType: operationDef?.operation,
38
- operationName: operationDef?.name?.value,
60
+ /**
61
+ * @note Echo the requested operation name even when the document
62
+ * has no such operation. It makes the "unhandled operation" warnings
63
+ * name the operation the client actually asked for.
64
+ */
65
+ operationName: operationDef?.name?.value || operationName || undefined,
39
66
  }
40
67
  }
41
68
 
42
- async function parseQuery(query: string): Promise<ParsedGraphQLQuery | Error> {
43
- /**
44
- * @note Use `require` to get the "graphql" module here.
45
- * It has to be scoped to this function because this module leaks to the
46
- * root export. It has to be `require` because tools like Jest have trouble
47
- * handling dynamic imports. It gets replaced with a dynamic import on build time.
48
- */
49
- // eslint-disable-next-line @typescript-eslint/no-require-imports
50
- const { parse } = require('graphql')
51
-
69
+ async function parseQuery(
70
+ query: string,
71
+ operationName?: string | null,
72
+ ): Promise<ParsedGraphQLQuery | Error> {
52
73
  try {
53
74
  const ast = parse(query)
54
- return parseDocumentNode(ast)
75
+ return parseDocumentNode(ast, operationName)
55
76
  } catch (error) {
56
77
  return error as Error
57
78
  }
58
79
  }
59
80
 
60
- export type GraphQLParsedOperationsMap = Record<string, string[]>
81
+ type GraphQLParsedOperationsMap = Record<string, string[]>
61
82
  export type GraphQLMultipartRequestBody = {
62
83
  operations: string
63
84
  map?: string
@@ -107,6 +128,7 @@ async function getGraphQLInput(request: Request): Promise<GraphQLInput | null> {
107
128
  return {
108
129
  query,
109
130
  variables: jsonParse(variables),
131
+ operationName: url.searchParams.get('operationName'),
110
132
  }
111
133
  }
112
134
 
@@ -130,9 +152,11 @@ async function getGraphQLInput(request: Request): Promise<GraphQLInput | null> {
130
152
 
131
153
  const { operations, map, ...files } = responseJson
132
154
  const parsedOperations =
133
- jsonParse<{ query?: string; variables?: GraphQLVariables }>(
134
- operations,
135
- ) || {}
155
+ jsonParse<{
156
+ query?: string
157
+ variables?: GraphQLVariables
158
+ operationName?: string | null
159
+ }>(operations) || {}
136
160
 
137
161
  if (!parsedOperations.query) {
138
162
  return null
@@ -150,6 +174,7 @@ async function getGraphQLInput(request: Request): Promise<GraphQLInput | null> {
150
174
  return {
151
175
  query: parsedOperations.query,
152
176
  variables,
177
+ operationName: parsedOperations.operationName,
153
178
  }
154
179
  }
155
180
 
@@ -157,15 +182,17 @@ async function getGraphQLInput(request: Request): Promise<GraphQLInput | null> {
157
182
  const requestJson: {
158
183
  query: string
159
184
  variables?: GraphQLVariables
185
+ operationName?: string | null
160
186
  operations?: any /** @todo Annotate this */
161
187
  } = await requestClone.json().catch(() => null)
162
188
 
163
189
  if (requestJson?.query) {
164
- const { query, variables } = requestJson
190
+ const { query, variables, operationName } = requestJson
165
191
 
166
192
  return {
167
193
  query,
168
194
  variables,
195
+ operationName,
169
196
  }
170
197
  }
171
198
  return null
@@ -189,8 +216,8 @@ export async function parseGraphQLRequest(
189
216
  return
190
217
  }
191
218
 
192
- const { query, variables } = input
193
- const parsedResult = await parseQuery(query)
219
+ const { query, variables, operationName } = input
220
+ const parsedResult = await parseQuery(query, operationName)
194
221
 
195
222
  if (parsedResult instanceof Error) {
196
223
  const requestPublicUrl = toPublicUrl(request.url)
@@ -1,9 +1,9 @@
1
1
  // @vitest-environment jsdom
2
2
  import { createRequestId } from '@mswjs/interceptors'
3
- import type { HttpRequestResolverExtras } from './HttpHandler'
4
- import { HttpHandler } from './HttpHandler'
5
- import { HttpResponse } from '..'
6
- import type { ResponseResolver } from './RequestHandler'
3
+ import type { HttpRequestResolverExtras } from './http-handler'
4
+ import { HttpHandler } from './http-handler'
5
+ import { HttpResponse } from './index'
6
+ import type { ResponseResolver } from '#core/handlers/request-handler'
7
7
 
8
8
  const resolver: ResponseResolver<
9
9
  HttpRequestResolverExtras<{ userId: string }>
@@ -12,7 +12,7 @@ const resolver: ResponseResolver<
12
12
  }
13
13
 
14
14
  describe('info', () => {
15
- it('exposes request handler information', () => {
15
+ test('exposes request handler information', () => {
16
16
  const handler = new HttpHandler('GET', '/user/:userId', resolver)
17
17
 
18
18
  expect(handler.info.header).toEqual('GET /user/:userId')
@@ -23,7 +23,7 @@ describe('info', () => {
23
23
  })
24
24
 
25
25
  describe('parse', () => {
26
- it('parses a URL given a matching request', async () => {
26
+ test('parses a URL given a matching request', async () => {
27
27
  const handler = new HttpHandler('GET', '/user/:userId', resolver)
28
28
  const request = new Request(new URL('/user/abc-123', location.href))
29
29
 
@@ -38,7 +38,7 @@ describe('parse', () => {
38
38
  })
39
39
  })
40
40
 
41
- it('parses a URL and ignores the request method', async () => {
41
+ test('parses a URL and ignores the request method', async () => {
42
42
  const handler = new HttpHandler('GET', '/user/:userId', resolver)
43
43
  const request = new Request(new URL('/user/def-456', location.href), {
44
44
  method: 'POST',
@@ -55,7 +55,7 @@ describe('parse', () => {
55
55
  })
56
56
  })
57
57
 
58
- it('returns negative match result given a non-matching request', async () => {
58
+ test('returns negative match result given a non-matching request', async () => {
59
59
  const handler = new HttpHandler('GET', '/user/:userId', resolver)
60
60
  const request = new Request(new URL('/login', location.href))
61
61
 
@@ -70,7 +70,7 @@ describe('parse', () => {
70
70
  })
71
71
 
72
72
  describe('predicate', () => {
73
- it('returns true given a matching request', async () => {
73
+ test('returns true given a matching request', async () => {
74
74
  const handler = new HttpHandler('POST', '/login', resolver)
75
75
  const request = new Request(new URL('/login', location.href), {
76
76
  method: 'POST',
@@ -84,7 +84,7 @@ describe('predicate', () => {
84
84
  ).resolves.toBe(true)
85
85
  })
86
86
 
87
- it('supports RegExp as the request method', async () => {
87
+ test('supports RegExp as the request method', async () => {
88
88
  const handler = new HttpHandler(/.+/, '/login', resolver)
89
89
  const requests = [
90
90
  new Request(new URL('/login', location.href)),
@@ -102,7 +102,7 @@ describe('predicate', () => {
102
102
  }
103
103
  })
104
104
 
105
- it('returns false given a non-matching request', async () => {
105
+ test('returns false given a non-matching request', async () => {
106
106
  const handler = new HttpHandler('POST', '/login', resolver)
107
107
  const request = new Request(new URL('/user/abc-123', location.href))
108
108
 
@@ -114,7 +114,7 @@ describe('predicate', () => {
114
114
  ).resolves.toBe(false)
115
115
  })
116
116
 
117
- it('supports custom predicate function', async () => {
117
+ test('supports custom predicate function', async () => {
118
118
  const handler = new HttpHandler(
119
119
  'GET',
120
120
  ({ request }) => {
@@ -146,7 +146,7 @@ describe('predicate', () => {
146
146
  })
147
147
 
148
148
  describe('test', () => {
149
- it('returns true given a matching request', async () => {
149
+ test('returns true given a matching request', async () => {
150
150
  const handler = new HttpHandler('GET', '/user/:userId', resolver)
151
151
  const firstTest = await handler.test({
152
152
  request: new Request(new URL('/user/abc-123', location.href)),
@@ -159,7 +159,7 @@ describe('test', () => {
159
159
  expect(secondTest).toBe(true)
160
160
  })
161
161
 
162
- it('returns false given a non-matching request', async () => {
162
+ test('returns false given a non-matching request', async () => {
163
163
  const handler = new HttpHandler('GET', '/user/:userId', resolver)
164
164
  const firstTest = await handler.test({
165
165
  request: new Request(new URL('/login', location.href)),
@@ -178,7 +178,7 @@ describe('test', () => {
178
178
  })
179
179
 
180
180
  describe('run', () => {
181
- it('returns a mocked response given a matching request', async () => {
181
+ test('returns a mocked response given a matching request', async () => {
182
182
  const handler = new HttpHandler('GET', '/user/:userId', resolver)
183
183
  const request = new Request(new URL('/user/abc-123', location.href))
184
184
  const requestId = createRequestId()
@@ -203,7 +203,7 @@ describe('run', () => {
203
203
  })
204
204
  })
205
205
 
206
- it('returns null given a non-matching request', async () => {
206
+ test('returns null given a non-matching request', async () => {
207
207
  const handler = new HttpHandler('POST', '/login', resolver)
208
208
  const result = await handler.run({
209
209
  request: new Request(new URL('/users', location.href)),
@@ -213,7 +213,7 @@ describe('run', () => {
213
213
  expect(result).toBeNull()
214
214
  })
215
215
 
216
- it('returns an empty "params" object given request with no URL parameters', async () => {
216
+ test('returns an empty "params" object given request with no URL parameters', async () => {
217
217
  const handler = new HttpHandler('GET', '/users', resolver)
218
218
  const result = await handler.run({
219
219
  request: new Request(new URL('/users', location.href)),
@@ -223,7 +223,7 @@ describe('run', () => {
223
223
  expect(result?.parsedResult?.match?.params).toEqual({})
224
224
  })
225
225
 
226
- it('exhausts resolver until its generator completes', async () => {
226
+ test('exhausts resolver until its generator completes', async () => {
227
227
  const handler = new HttpHandler('GET', '/users', function* () {
228
228
  let count = 0
229
229
 
@@ -252,3 +252,92 @@ describe('run', () => {
252
252
  await expect(run()).resolves.toBe('complete')
253
253
  })
254
254
  })
255
+
256
+ describe('finalize', () => {
257
+ test('returns the exact response instance if the resolver never accesses finalize', async () => {
258
+ const response = new HttpResponse(
259
+ new ReadableStream({
260
+ start(controller) {
261
+ controller.enqueue(new TextEncoder().encode('hello'))
262
+ controller.close()
263
+ },
264
+ }),
265
+ )
266
+ const handler = new HttpHandler('GET', '/resource', () => {
267
+ return response
268
+ })
269
+
270
+ const result = await handler.run({
271
+ request: new Request(new URL('/resource', location.href)),
272
+ requestId: createRequestId(),
273
+ })
274
+
275
+ expect(result?.response).toBe(response)
276
+ })
277
+
278
+ test('returns the exact response instance if finalize is accessed but never called', async () => {
279
+ const response = new HttpResponse(
280
+ new ReadableStream({
281
+ start(controller) {
282
+ controller.close()
283
+ },
284
+ }),
285
+ )
286
+ const handler = new HttpHandler('GET', '/resource', ({ finalize }) => {
287
+ expect(finalize).toBeInstanceOf(Function)
288
+ return response
289
+ })
290
+
291
+ const result = await handler.run({
292
+ request: new Request(new URL('/resource', location.href)),
293
+ requestId: createRequestId(),
294
+ })
295
+
296
+ expect(result?.response).toBe(response)
297
+ })
298
+
299
+ test('defers the cleanup until the response stream settles', async () => {
300
+ const cleanup = vi.fn()
301
+ const response = new HttpResponse(
302
+ new ReadableStream({
303
+ start(controller) {
304
+ controller.enqueue(new TextEncoder().encode('hello'))
305
+ controller.close()
306
+ },
307
+ }),
308
+ )
309
+ const handler = new HttpHandler('GET', '/resource', ({ finalize }) => {
310
+ finalize(cleanup)
311
+ return response
312
+ })
313
+
314
+ const result = await handler.run({
315
+ request: new Request(new URL('/resource', location.href)),
316
+ requestId: createRequestId(),
317
+ })
318
+
319
+ // The observed response is a copy of the original response.
320
+ expect(result?.response).not.toBe(response)
321
+ expect(cleanup).not.toHaveBeenCalled()
322
+
323
+ await expect(result?.response?.text()).resolves.toBe('hello')
324
+ await vi.waitFor(() => {
325
+ expect(cleanup).toHaveBeenCalledOnce()
326
+ })
327
+ })
328
+
329
+ test('runs the cleanup immediately for responses without a body', async () => {
330
+ const cleanup = vi.fn()
331
+ const handler = new HttpHandler('GET', '/resource', ({ finalize }) => {
332
+ finalize(cleanup)
333
+ return new HttpResponse(null)
334
+ })
335
+
336
+ await handler.run({
337
+ request: new Request(new URL('/resource', location.href)),
338
+ requestId: createRequestId(),
339
+ })
340
+
341
+ expect(cleanup).toHaveBeenCalledOnce()
342
+ })
343
+ })