msw 2.0.11 → 2.0.13

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 (405) hide show
  1. package/lib/browser/index.d.mts +104 -0
  2. package/lib/browser/index.d.ts +1 -1
  3. package/lib/browser/index.js +1 -0
  4. package/lib/browser/index.js.map +1 -0
  5. package/lib/browser/index.mjs +1 -0
  6. package/lib/browser/index.mjs.map +1 -0
  7. package/lib/core/{GraphQLHandler-907fc607.d.ts → GraphQLHandler-SHlRCcy4.d.ts} +9 -2
  8. package/lib/core/GraphQLHandler-zlmUDnN6.d.mts +97 -0
  9. package/lib/core/HttpResponse.d.mts +2 -0
  10. package/lib/core/HttpResponse.d.ts +1 -1
  11. package/lib/core/HttpResponse.js +1 -0
  12. package/lib/core/HttpResponse.js.map +1 -0
  13. package/lib/core/HttpResponse.mjs +1 -0
  14. package/lib/core/HttpResponse.mjs.map +1 -0
  15. package/lib/core/{RequestHandler-50ddea0c.d.ts → RequestHandler-rBDJQrEf.d.ts} +3 -1
  16. package/lib/core/RequestHandler-vxZdj6Tw.d.mts +179 -0
  17. package/lib/core/SetupApi.d.mts +26 -0
  18. package/lib/core/SetupApi.d.ts +1 -1
  19. package/lib/core/SetupApi.js +1 -0
  20. package/lib/core/SetupApi.js.map +1 -0
  21. package/lib/core/SetupApi.mjs +1 -0
  22. package/lib/core/SetupApi.mjs.map +1 -0
  23. package/lib/core/bypass.d.mts +16 -0
  24. package/lib/core/bypass.d.ts +1 -1
  25. package/lib/core/bypass.js +1 -0
  26. package/lib/core/bypass.js.map +1 -0
  27. package/lib/core/bypass.mjs +1 -0
  28. package/lib/core/bypass.mjs.map +1 -0
  29. package/lib/core/delay.d.mts +18 -0
  30. package/lib/core/delay.d.ts +1 -1
  31. package/lib/core/delay.js +1 -0
  32. package/lib/core/delay.js.map +1 -0
  33. package/lib/core/delay.mjs +1 -0
  34. package/lib/core/delay.mjs.map +1 -0
  35. package/lib/core/graphql.d.mts +109 -0
  36. package/lib/core/graphql.d.ts +3 -3
  37. package/lib/core/graphql.js +1 -0
  38. package/lib/core/graphql.js.map +1 -0
  39. package/lib/core/graphql.mjs +1 -0
  40. package/lib/core/graphql.mjs.map +1 -0
  41. package/lib/core/handlers/GraphQLHandler.d.mts +5 -0
  42. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  43. package/lib/core/handlers/GraphQLHandler.js +28 -8
  44. package/lib/core/handlers/GraphQLHandler.js.map +1 -0
  45. package/lib/core/handlers/GraphQLHandler.mjs +28 -8
  46. package/lib/core/handlers/GraphQLHandler.mjs.map +1 -0
  47. package/lib/core/handlers/HttpHandler.d.mts +62 -0
  48. package/lib/core/handlers/HttpHandler.d.ts +2 -2
  49. package/lib/core/handlers/HttpHandler.js +1 -0
  50. package/lib/core/handlers/HttpHandler.js.map +1 -0
  51. package/lib/core/handlers/HttpHandler.mjs +1 -0
  52. package/lib/core/handlers/HttpHandler.mjs.map +1 -0
  53. package/lib/core/handlers/RequestHandler.d.mts +2 -0
  54. package/lib/core/handlers/RequestHandler.d.ts +1 -1
  55. package/lib/core/handlers/RequestHandler.js +19 -4
  56. package/lib/core/handlers/RequestHandler.js.map +1 -0
  57. package/lib/core/handlers/RequestHandler.mjs +19 -4
  58. package/lib/core/handlers/RequestHandler.mjs.map +1 -0
  59. package/lib/core/http.d.mts +26 -0
  60. package/lib/core/http.d.ts +1 -1
  61. package/lib/core/http.js +1 -0
  62. package/lib/core/http.js.map +1 -0
  63. package/lib/core/http.mjs +1 -0
  64. package/lib/core/http.mjs.map +1 -0
  65. package/lib/core/index.d.mts +18 -0
  66. package/lib/core/index.d.ts +2 -2
  67. package/lib/core/index.js +1 -0
  68. package/lib/core/index.js.map +1 -0
  69. package/lib/core/index.mjs +1 -0
  70. package/lib/core/index.mjs.map +1 -0
  71. package/lib/core/passthrough.d.mts +17 -0
  72. package/lib/core/passthrough.js +1 -0
  73. package/lib/core/passthrough.js.map +1 -0
  74. package/lib/core/passthrough.mjs +1 -0
  75. package/lib/core/passthrough.mjs.map +1 -0
  76. package/lib/core/sharedOptions.d.mts +66 -0
  77. package/lib/core/sharedOptions.d.ts +2 -2
  78. package/lib/core/sharedOptions.js +1 -0
  79. package/lib/core/sharedOptions.js.map +1 -0
  80. package/lib/core/sharedOptions.mjs +1 -0
  81. package/lib/core/sharedOptions.mjs.map +1 -0
  82. package/lib/core/typeUtils.d.mts +7 -0
  83. package/lib/core/typeUtils.d.ts +1 -1
  84. package/lib/core/typeUtils.js +1 -0
  85. package/lib/core/typeUtils.js.map +1 -0
  86. package/lib/core/typeUtils.mjs +1 -0
  87. package/lib/core/typeUtils.mjs.map +1 -0
  88. package/lib/core/utils/HttpResponse/decorators.d.mts +12 -0
  89. package/lib/core/utils/HttpResponse/decorators.d.ts +2 -2
  90. package/lib/core/utils/HttpResponse/decorators.js +1 -0
  91. package/lib/core/utils/HttpResponse/decorators.js.map +1 -0
  92. package/lib/core/utils/HttpResponse/decorators.mjs +1 -0
  93. package/lib/core/utils/HttpResponse/decorators.mjs.map +1 -0
  94. package/lib/core/utils/getResponse.d.mts +2 -0
  95. package/lib/core/utils/getResponse.d.ts +1 -1
  96. package/lib/core/utils/getResponse.js +1 -0
  97. package/lib/core/utils/getResponse.js.map +1 -0
  98. package/lib/core/utils/getResponse.mjs +1 -0
  99. package/lib/core/utils/getResponse.mjs.map +1 -0
  100. package/lib/core/utils/handleRequest.d.mts +37 -0
  101. package/lib/core/utils/handleRequest.d.ts +2 -2
  102. package/lib/core/utils/handleRequest.js +1 -0
  103. package/lib/core/utils/handleRequest.js.map +1 -0
  104. package/lib/core/utils/handleRequest.mjs +1 -0
  105. package/lib/core/utils/handleRequest.mjs.map +1 -0
  106. package/lib/core/utils/internal/Disposable.d.mts +7 -0
  107. package/lib/core/utils/internal/Disposable.d.ts +1 -1
  108. package/lib/core/utils/internal/Disposable.js +1 -0
  109. package/lib/core/utils/internal/Disposable.js.map +1 -0
  110. package/lib/core/utils/internal/Disposable.mjs +1 -0
  111. package/lib/core/utils/internal/Disposable.mjs.map +1 -0
  112. package/lib/core/utils/internal/checkGlobals.d.mts +3 -0
  113. package/lib/core/utils/internal/checkGlobals.js +1 -0
  114. package/lib/core/utils/internal/checkGlobals.js.map +1 -0
  115. package/lib/core/utils/internal/checkGlobals.mjs +1 -0
  116. package/lib/core/utils/internal/checkGlobals.mjs.map +1 -0
  117. package/lib/core/utils/internal/devUtils.d.mts +19 -0
  118. package/lib/core/utils/internal/devUtils.js +1 -0
  119. package/lib/core/utils/internal/devUtils.js.map +1 -0
  120. package/lib/core/utils/internal/devUtils.mjs +1 -0
  121. package/lib/core/utils/internal/devUtils.mjs.map +1 -0
  122. package/lib/core/utils/internal/getCallFrame.d.mts +6 -0
  123. package/lib/core/utils/internal/getCallFrame.js +1 -0
  124. package/lib/core/utils/internal/getCallFrame.js.map +1 -0
  125. package/lib/core/utils/internal/getCallFrame.mjs +1 -0
  126. package/lib/core/utils/internal/getCallFrame.mjs.map +1 -0
  127. package/lib/core/utils/internal/isIterable.d.mts +6 -0
  128. package/lib/core/utils/internal/isIterable.js +1 -0
  129. package/lib/core/utils/internal/isIterable.js.map +1 -0
  130. package/lib/core/utils/internal/isIterable.mjs +1 -0
  131. package/lib/core/utils/internal/isIterable.mjs.map +1 -0
  132. package/lib/core/utils/internal/isObject.d.mts +6 -0
  133. package/lib/core/utils/internal/isObject.js +1 -0
  134. package/lib/core/utils/internal/isObject.js.map +1 -0
  135. package/lib/core/utils/internal/isObject.mjs +1 -0
  136. package/lib/core/utils/internal/isObject.mjs.map +1 -0
  137. package/lib/core/utils/internal/isStringEqual.d.mts +6 -0
  138. package/lib/core/utils/internal/isStringEqual.js +1 -0
  139. package/lib/core/utils/internal/isStringEqual.js.map +1 -0
  140. package/lib/core/utils/internal/isStringEqual.mjs +1 -0
  141. package/lib/core/utils/internal/isStringEqual.mjs.map +1 -0
  142. package/lib/core/utils/internal/jsonParse.d.mts +7 -0
  143. package/lib/core/utils/internal/jsonParse.js +1 -0
  144. package/lib/core/utils/internal/jsonParse.js.map +1 -0
  145. package/lib/core/utils/internal/jsonParse.mjs +1 -0
  146. package/lib/core/utils/internal/jsonParse.mjs.map +1 -0
  147. package/lib/core/utils/internal/mergeRight.d.mts +7 -0
  148. package/lib/core/utils/internal/mergeRight.js +1 -0
  149. package/lib/core/utils/internal/mergeRight.js.map +1 -0
  150. package/lib/core/utils/internal/mergeRight.mjs +1 -0
  151. package/lib/core/utils/internal/mergeRight.mjs.map +1 -0
  152. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +5 -0
  153. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  154. package/lib/core/utils/internal/parseGraphQLRequest.js +1 -0
  155. package/lib/core/utils/internal/parseGraphQLRequest.js.map +1 -0
  156. package/lib/core/utils/internal/parseGraphQLRequest.mjs +1 -0
  157. package/lib/core/utils/internal/parseGraphQLRequest.mjs.map +1 -0
  158. package/lib/core/utils/internal/parseMultipartData.d.mts +10 -0
  159. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  160. package/lib/core/utils/internal/parseMultipartData.js +1 -0
  161. package/lib/core/utils/internal/parseMultipartData.js.map +1 -0
  162. package/lib/core/utils/internal/parseMultipartData.mjs +1 -0
  163. package/lib/core/utils/internal/parseMultipartData.mjs.map +1 -0
  164. package/lib/core/utils/internal/pipeEvents.d.mts +8 -0
  165. package/lib/core/utils/internal/pipeEvents.js +1 -0
  166. package/lib/core/utils/internal/pipeEvents.js.map +1 -0
  167. package/lib/core/utils/internal/pipeEvents.mjs +1 -0
  168. package/lib/core/utils/internal/pipeEvents.mjs.map +1 -0
  169. package/lib/core/utils/internal/requestHandlerUtils.d.mts +8 -0
  170. package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
  171. package/lib/core/utils/internal/requestHandlerUtils.js +1 -0
  172. package/lib/core/utils/internal/requestHandlerUtils.js.map +1 -0
  173. package/lib/core/utils/internal/requestHandlerUtils.mjs +1 -0
  174. package/lib/core/utils/internal/requestHandlerUtils.mjs.map +1 -0
  175. package/lib/core/utils/internal/toReadonlyArray.d.mts +6 -0
  176. package/lib/core/utils/internal/toReadonlyArray.js +1 -0
  177. package/lib/core/utils/internal/toReadonlyArray.js.map +1 -0
  178. package/lib/core/utils/internal/toReadonlyArray.mjs +1 -0
  179. package/lib/core/utils/internal/toReadonlyArray.mjs.map +1 -0
  180. package/lib/core/utils/internal/tryCatch.d.mts +3 -0
  181. package/lib/core/utils/internal/tryCatch.js +1 -0
  182. package/lib/core/utils/internal/tryCatch.js.map +1 -0
  183. package/lib/core/utils/internal/tryCatch.mjs +1 -0
  184. package/lib/core/utils/internal/tryCatch.mjs.map +1 -0
  185. package/lib/core/utils/internal/uuidv4.d.mts +3 -0
  186. package/lib/core/utils/internal/uuidv4.js +1 -0
  187. package/lib/core/utils/internal/uuidv4.js.map +1 -0
  188. package/lib/core/utils/internal/uuidv4.mjs +1 -0
  189. package/lib/core/utils/internal/uuidv4.mjs.map +1 -0
  190. package/lib/core/utils/logging/getStatusCodeColor.d.mts +11 -0
  191. package/lib/core/utils/logging/getStatusCodeColor.js +1 -0
  192. package/lib/core/utils/logging/getStatusCodeColor.js.map +1 -0
  193. package/lib/core/utils/logging/getStatusCodeColor.mjs +1 -0
  194. package/lib/core/utils/logging/getStatusCodeColor.mjs.map +1 -0
  195. package/lib/core/utils/logging/getTimestamp.d.mts +6 -0
  196. package/lib/core/utils/logging/getTimestamp.js +1 -0
  197. package/lib/core/utils/logging/getTimestamp.js.map +1 -0
  198. package/lib/core/utils/logging/getTimestamp.mjs +1 -0
  199. package/lib/core/utils/logging/getTimestamp.mjs.map +1 -0
  200. package/lib/core/utils/logging/serializeRequest.d.mts +12 -0
  201. package/lib/core/utils/logging/serializeRequest.d.ts +1 -1
  202. package/lib/core/utils/logging/serializeRequest.js +1 -0
  203. package/lib/core/utils/logging/serializeRequest.js.map +1 -0
  204. package/lib/core/utils/logging/serializeRequest.mjs +1 -0
  205. package/lib/core/utils/logging/serializeRequest.mjs.map +1 -0
  206. package/lib/core/utils/logging/serializeResponse.d.mts +9 -0
  207. package/lib/core/utils/logging/serializeResponse.d.ts +1 -1
  208. package/lib/core/utils/logging/serializeResponse.js +1 -0
  209. package/lib/core/utils/logging/serializeResponse.js.map +1 -0
  210. package/lib/core/utils/logging/serializeResponse.mjs +1 -0
  211. package/lib/core/utils/logging/serializeResponse.mjs.map +1 -0
  212. package/lib/core/utils/matching/matchRequestUrl.d.mts +19 -0
  213. package/lib/core/utils/matching/matchRequestUrl.d.ts +1 -1
  214. package/lib/core/utils/matching/matchRequestUrl.js +1 -0
  215. package/lib/core/utils/matching/matchRequestUrl.js.map +1 -0
  216. package/lib/core/utils/matching/matchRequestUrl.mjs +1 -0
  217. package/lib/core/utils/matching/matchRequestUrl.mjs.map +1 -0
  218. package/lib/core/utils/matching/normalizePath.d.mts +12 -0
  219. package/lib/core/utils/matching/normalizePath.js +1 -0
  220. package/lib/core/utils/matching/normalizePath.js.map +1 -0
  221. package/lib/core/utils/matching/normalizePath.mjs +1 -0
  222. package/lib/core/utils/matching/normalizePath.mjs.map +1 -0
  223. package/lib/core/utils/request/getPublicUrlFromRequest.d.mts +7 -0
  224. package/lib/core/utils/request/getPublicUrlFromRequest.js +1 -0
  225. package/lib/core/utils/request/getPublicUrlFromRequest.js.map +1 -0
  226. package/lib/core/utils/request/getPublicUrlFromRequest.mjs +1 -0
  227. package/lib/core/utils/request/getPublicUrlFromRequest.mjs.map +1 -0
  228. package/lib/core/utils/request/getRequestCookies.d.mts +8 -0
  229. package/lib/core/utils/request/getRequestCookies.js +1 -0
  230. package/lib/core/utils/request/getRequestCookies.js.map +1 -0
  231. package/lib/core/utils/request/getRequestCookies.mjs +1 -0
  232. package/lib/core/utils/request/getRequestCookies.mjs.map +1 -0
  233. package/lib/core/utils/request/onUnhandledRequest.d.mts +12 -0
  234. package/lib/core/utils/request/onUnhandledRequest.d.ts +2 -2
  235. package/lib/core/utils/request/onUnhandledRequest.js +1 -0
  236. package/lib/core/utils/request/onUnhandledRequest.js.map +1 -0
  237. package/lib/core/utils/request/onUnhandledRequest.mjs +1 -0
  238. package/lib/core/utils/request/onUnhandledRequest.mjs.map +1 -0
  239. package/lib/core/utils/request/readResponseCookies.d.mts +3 -0
  240. package/lib/core/utils/request/readResponseCookies.js +1 -0
  241. package/lib/core/utils/request/readResponseCookies.js.map +1 -0
  242. package/lib/core/utils/request/readResponseCookies.mjs +1 -0
  243. package/lib/core/utils/request/readResponseCookies.mjs.map +1 -0
  244. package/lib/core/utils/toResponseInit.d.mts +3 -0
  245. package/lib/core/utils/toResponseInit.js +1 -0
  246. package/lib/core/utils/toResponseInit.js.map +1 -0
  247. package/lib/core/utils/toResponseInit.mjs +1 -0
  248. package/lib/core/utils/toResponseInit.mjs.map +1 -0
  249. package/lib/core/utils/url/cleanUrl.d.mts +7 -0
  250. package/lib/core/utils/url/cleanUrl.js +1 -0
  251. package/lib/core/utils/url/cleanUrl.js.map +1 -0
  252. package/lib/core/utils/url/cleanUrl.mjs +1 -0
  253. package/lib/core/utils/url/cleanUrl.mjs.map +1 -0
  254. package/lib/core/utils/url/getAbsoluteUrl.d.mts +6 -0
  255. package/lib/core/utils/url/getAbsoluteUrl.js +1 -0
  256. package/lib/core/utils/url/getAbsoluteUrl.js.map +1 -0
  257. package/lib/core/utils/url/getAbsoluteUrl.mjs +1 -0
  258. package/lib/core/utils/url/getAbsoluteUrl.mjs.map +1 -0
  259. package/lib/core/utils/url/isAbsoluteUrl.d.mts +6 -0
  260. package/lib/core/utils/url/isAbsoluteUrl.js +1 -0
  261. package/lib/core/utils/url/isAbsoluteUrl.js.map +1 -0
  262. package/lib/core/utils/url/isAbsoluteUrl.mjs +1 -0
  263. package/lib/core/utils/url/isAbsoluteUrl.mjs.map +1 -0
  264. package/lib/iife/index.js +59 -25
  265. package/lib/iife/index.js.map +1 -0
  266. package/lib/mockServiceWorker.js +1 -1
  267. package/lib/native/index.d.mts +75 -0
  268. package/lib/native/index.d.ts +0 -1
  269. package/lib/native/index.js +1 -3
  270. package/lib/native/index.js.map +1 -0
  271. package/lib/native/index.mjs +1 -3
  272. package/lib/native/index.mjs.map +1 -0
  273. package/lib/node/index.d.mts +75 -0
  274. package/lib/node/index.d.ts +1 -2
  275. package/lib/node/index.js +2 -35
  276. package/lib/node/index.js.map +1 -0
  277. package/lib/node/index.mjs +2 -35
  278. package/lib/node/index.mjs.map +1 -0
  279. package/package.json +6 -5
  280. package/src/browser/global.browser.d.ts +1 -0
  281. package/src/browser/index.ts +3 -0
  282. package/src/browser/setupWorker/glossary.ts +259 -0
  283. package/src/browser/setupWorker/setupWorker.node.test.ts +10 -0
  284. package/src/browser/setupWorker/setupWorker.ts +199 -0
  285. package/src/browser/setupWorker/start/createFallbackRequestListener.ts +67 -0
  286. package/src/browser/setupWorker/start/createFallbackStart.ts +21 -0
  287. package/src/browser/setupWorker/start/createRequestListener.ts +127 -0
  288. package/src/browser/setupWorker/start/createResponseListener.ts +58 -0
  289. package/src/browser/setupWorker/start/createStartHandler.ts +143 -0
  290. package/src/browser/setupWorker/start/utils/createMessageChannel.ts +32 -0
  291. package/src/browser/setupWorker/start/utils/enableMocking.ts +32 -0
  292. package/src/browser/setupWorker/start/utils/getWorkerByRegistration.ts +25 -0
  293. package/src/browser/setupWorker/start/utils/getWorkerInstance.ts +94 -0
  294. package/src/browser/setupWorker/start/utils/prepareStartHandler.test.ts +59 -0
  295. package/src/browser/setupWorker/start/utils/prepareStartHandler.ts +44 -0
  296. package/src/browser/setupWorker/start/utils/printStartMessage.test.ts +84 -0
  297. package/src/browser/setupWorker/start/utils/printStartMessage.ts +40 -0
  298. package/src/browser/setupWorker/start/utils/validateWorkerScope.ts +18 -0
  299. package/src/browser/setupWorker/stop/createFallbackStop.ts +11 -0
  300. package/src/browser/setupWorker/stop/createStop.ts +29 -0
  301. package/src/browser/setupWorker/stop/utils/printStopMessage.test.ts +26 -0
  302. package/src/browser/setupWorker/stop/utils/printStopMessage.ts +12 -0
  303. package/src/browser/tsconfig.browser.build.json +6 -0
  304. package/src/browser/tsconfig.browser.json +9 -0
  305. package/src/browser/utils/deferNetworkRequestsUntil.test.ts +48 -0
  306. package/src/browser/utils/deferNetworkRequestsUntil.ts +29 -0
  307. package/src/browser/utils/getAbsoluteWorkerUrl.test.ts +31 -0
  308. package/src/browser/utils/getAbsoluteWorkerUrl.ts +7 -0
  309. package/src/browser/utils/parseWorkerRequest.ts +15 -0
  310. package/src/browser/utils/pruneGetRequestBody.test.ts +53 -0
  311. package/src/browser/utils/pruneGetRequestBody.ts +21 -0
  312. package/src/browser/utils/requestIntegrityCheck.ts +23 -0
  313. package/src/browser/utils/supportsReadableStreamTransfer.ts +17 -0
  314. package/src/core/HttpResponse.test.ts +200 -0
  315. package/src/core/HttpResponse.ts +134 -0
  316. package/src/core/SetupApi.ts +95 -0
  317. package/src/core/bypass.test.ts +47 -0
  318. package/src/core/bypass.ts +36 -0
  319. package/src/core/delay.ts +70 -0
  320. package/src/core/graphql.test.ts +11 -0
  321. package/src/core/graphql.ts +138 -0
  322. package/src/core/handlers/GraphQLHandler.test.ts +820 -0
  323. package/src/core/handlers/GraphQLHandler.ts +263 -0
  324. package/src/core/handlers/HttpHandler.test.ts +218 -0
  325. package/src/core/handlers/HttpHandler.ts +169 -0
  326. package/src/core/handlers/RequestHandler.ts +338 -0
  327. package/src/core/http.test.ts +15 -0
  328. package/src/core/http.ts +51 -0
  329. package/src/core/index.ts +56 -0
  330. package/src/core/passthrough.test.ts +13 -0
  331. package/src/core/passthrough.ts +23 -0
  332. package/src/core/sharedOptions.ts +66 -0
  333. package/src/core/typeUtils.ts +20 -0
  334. package/src/core/utils/HttpResponse/decorators.ts +56 -0
  335. package/src/core/utils/getResponse.ts +55 -0
  336. package/src/core/utils/handleRequest.test.ts +554 -0
  337. package/src/core/utils/handleRequest.ts +132 -0
  338. package/src/core/utils/internal/Disposable.ts +9 -0
  339. package/src/core/utils/internal/checkGlobals.ts +17 -0
  340. package/src/core/utils/internal/devUtils.ts +31 -0
  341. package/src/core/utils/internal/getCallFrame.test.ts +154 -0
  342. package/src/core/utils/internal/getCallFrame.ts +35 -0
  343. package/src/core/utils/internal/isIterable.test.ts +23 -0
  344. package/src/core/utils/internal/isIterable.ts +12 -0
  345. package/src/core/utils/internal/isObject.test.ts +20 -0
  346. package/src/core/utils/internal/isObject.ts +6 -0
  347. package/src/core/utils/internal/isStringEqual.test.ts +45 -0
  348. package/src/core/utils/internal/isStringEqual.ts +6 -0
  349. package/src/core/utils/internal/jsonParse.test.ts +13 -0
  350. package/src/core/utils/internal/jsonParse.ts +13 -0
  351. package/src/core/utils/internal/mergeRight.test.ts +43 -0
  352. package/src/core/utils/internal/mergeRight.ts +27 -0
  353. package/src/core/utils/internal/parseGraphQLRequest.test.ts +99 -0
  354. package/src/core/utils/internal/parseGraphQLRequest.ts +205 -0
  355. package/src/core/utils/internal/parseMultipartData.test.ts +76 -0
  356. package/src/core/utils/internal/parseMultipartData.ts +104 -0
  357. package/src/core/utils/internal/pipeEvents.test.ts +14 -0
  358. package/src/core/utils/internal/pipeEvents.ts +25 -0
  359. package/src/core/utils/internal/requestHandlerUtils.ts +21 -0
  360. package/src/core/utils/internal/toReadonlyArray.test.ts +30 -0
  361. package/src/core/utils/internal/toReadonlyArray.ts +8 -0
  362. package/src/core/utils/internal/tryCatch.test.ts +29 -0
  363. package/src/core/utils/internal/tryCatch.ts +11 -0
  364. package/src/core/utils/internal/uuidv4.ts +3 -0
  365. package/src/core/utils/logging/getStatusCodeColor.test.ts +22 -0
  366. package/src/core/utils/logging/getStatusCodeColor.ts +20 -0
  367. package/src/core/utils/logging/getTimestamp.test.ts +18 -0
  368. package/src/core/utils/logging/getTimestamp.ts +12 -0
  369. package/src/core/utils/logging/serializeRequest.test.ts +23 -0
  370. package/src/core/utils/logging/serializeRequest.ts +23 -0
  371. package/src/core/utils/logging/serializeResponse.test.ts +77 -0
  372. package/src/core/utils/logging/serializeResponse.ts +31 -0
  373. package/src/core/utils/matching/matchRequestUrl.test.ts +114 -0
  374. package/src/core/utils/matching/matchRequestUrl.ts +73 -0
  375. package/src/core/utils/matching/normalizePath.node.test.ts +44 -0
  376. package/src/core/utils/matching/normalizePath.test.ts +50 -0
  377. package/src/core/utils/matching/normalizePath.ts +21 -0
  378. package/src/core/utils/request/getPublicUrlFromRequest.test.ts +26 -0
  379. package/src/core/utils/request/getPublicUrlFromRequest.ts +15 -0
  380. package/src/core/utils/request/getRequestCookies.node.test.ts +29 -0
  381. package/src/core/utils/request/getRequestCookies.test.ts +64 -0
  382. package/src/core/utils/request/getRequestCookies.ts +75 -0
  383. package/src/core/utils/request/onUnhandledRequest.test.ts +215 -0
  384. package/src/core/utils/request/onUnhandledRequest.ts +247 -0
  385. package/src/core/utils/request/readResponseCookies.ts +9 -0
  386. package/src/core/utils/toResponseInit.ts +7 -0
  387. package/src/core/utils/url/cleanUrl.test.ts +17 -0
  388. package/src/core/utils/url/cleanUrl.ts +12 -0
  389. package/src/core/utils/url/getAbsoluteUrl.node.test.ts +19 -0
  390. package/src/core/utils/url/getAbsoluteUrl.test.ts +29 -0
  391. package/src/core/utils/url/getAbsoluteUrl.ts +26 -0
  392. package/src/core/utils/url/isAbsoluteUrl.test.ts +32 -0
  393. package/src/core/utils/url/isAbsoluteUrl.ts +6 -0
  394. package/src/iife/index.ts +2 -0
  395. package/src/mockServiceWorker.js +287 -0
  396. package/src/native/index.ts +17 -0
  397. package/src/node/SetupServerApi.ts +113 -0
  398. package/src/node/glossary.ts +62 -0
  399. package/src/node/index.ts +3 -0
  400. package/src/node/setupServer.ts +21 -0
  401. package/src/node/utils/isNodeExceptionLike.ts +14 -0
  402. package/src/tsconfig.core.build.json +6 -0
  403. package/src/tsconfig.node.build.json +6 -0
  404. package/src/tsconfig.node.json +8 -0
  405. package/src/tsconfig.src.json +15 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/mergeRight.ts"],"sourcesContent":["import { isObject } from './isObject'\n\n/**\n * Deeply merges two given objects with the right one\n * having a priority during property assignment.\n */\nexport function mergeRight(\n left: Record<string, any>,\n right: Record<string, any>,\n) {\n return Object.entries(right).reduce((result, [key, rightValue]) => {\n const leftValue = result[key]\n\n if (Array.isArray(leftValue) && Array.isArray(rightValue)) {\n result[key] = leftValue.concat(rightValue)\n return result\n }\n\n if (isObject(leftValue) && isObject(rightValue)) {\n result[key] = mergeRight(leftValue, rightValue)\n return result\n }\n\n result[key] = rightValue\n return result\n }, Object.assign({}, left))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAyB;AAMlB,SAAS,WACd,MACA,OACA;AACA,SAAO,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,UAAU,MAAM;AACjE,UAAM,YAAY,OAAO,GAAG;AAE5B,QAAI,MAAM,QAAQ,SAAS,KAAK,MAAM,QAAQ,UAAU,GAAG;AACzD,aAAO,GAAG,IAAI,UAAU,OAAO,UAAU;AACzC,aAAO;AAAA,IACT;AAEA,YAAI,0BAAS,SAAS,SAAK,0BAAS,UAAU,GAAG;AAC/C,aAAO,GAAG,IAAI,WAAW,WAAW,UAAU;AAC9C,aAAO;AAAA,IACT;AAEA,WAAO,GAAG,IAAI;AACd,WAAO;AAAA,EACT,GAAG,OAAO,OAAO,CAAC,GAAG,IAAI,CAAC;AAC5B;","names":[]}
@@ -17,3 +17,4 @@ function mergeRight(left, right) {
17
17
  export {
18
18
  mergeRight
19
19
  };
20
+ //# sourceMappingURL=mergeRight.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/mergeRight.ts"],"sourcesContent":["import { isObject } from './isObject'\n\n/**\n * Deeply merges two given objects with the right one\n * having a priority during property assignment.\n */\nexport function mergeRight(\n left: Record<string, any>,\n right: Record<string, any>,\n) {\n return Object.entries(right).reduce((result, [key, rightValue]) => {\n const leftValue = result[key]\n\n if (Array.isArray(leftValue) && Array.isArray(rightValue)) {\n result[key] = leftValue.concat(rightValue)\n return result\n }\n\n if (isObject(leftValue) && isObject(rightValue)) {\n result[key] = mergeRight(leftValue, rightValue)\n return result\n }\n\n result[key] = rightValue\n return result\n }, Object.assign({}, left))\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAMlB,SAAS,WACd,MACA,OACA;AACA,SAAO,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,UAAU,MAAM;AACjE,UAAM,YAAY,OAAO,GAAG;AAE5B,QAAI,MAAM,QAAQ,SAAS,KAAK,MAAM,QAAQ,UAAU,GAAG;AACzD,aAAO,GAAG,IAAI,UAAU,OAAO,UAAU;AACzC,aAAO;AAAA,IACT;AAEA,QAAI,SAAS,SAAS,KAAK,SAAS,UAAU,GAAG;AAC/C,aAAO,GAAG,IAAI,WAAW,WAAW,UAAU;AAC9C,aAAO;AAAA,IACT;AAEA,WAAO,GAAG,IAAI;AACd,WAAO;AAAA,EACT,GAAG,OAAO,OAAO,CAAC,GAAG,IAAI,CAAC;AAC5B;","names":[]}
@@ -0,0 +1,5 @@
1
+ import 'graphql';
2
+ export { i as GraphQLMultipartRequestBody, h as GraphQLParsedOperationsMap, g as ParsedGraphQLQuery, P as ParsedGraphQLRequest, p as parseDocumentNode, j as parseGraphQLRequest } from '../../GraphQLHandler-zlmUDnN6.mjs';
3
+ import '../../RequestHandler-vxZdj6Tw.mjs';
4
+ import '../../typeUtils.mjs';
5
+ import '../matching/matchRequestUrl.mjs';
@@ -1,5 +1,5 @@
1
1
  import 'graphql';
2
- export { i as GraphQLMultipartRequestBody, h as GraphQLParsedOperationsMap, g as ParsedGraphQLQuery, P as ParsedGraphQLRequest, p as parseDocumentNode, j as parseGraphQLRequest } from '../../GraphQLHandler-907fc607.js';
3
- import '../../RequestHandler-50ddea0c.js';
2
+ export { i as GraphQLMultipartRequestBody, h as GraphQLParsedOperationsMap, g as ParsedGraphQLQuery, P as ParsedGraphQLRequest, p as parseDocumentNode, j as parseGraphQLRequest } from '../../GraphQLHandler-SHlRCcy4.js';
3
+ import '../../RequestHandler-rBDJQrEf.js';
4
4
  import '../../typeUtils.js';
5
5
  import '../matching/matchRequestUrl.js';
@@ -182,3 +182,4 @@ function parseGraphQLRequest(request) {
182
182
  };
183
183
  });
184
184
  }
185
+ //# sourceMappingURL=parseGraphQLRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/parseGraphQLRequest.ts"],"sourcesContent":["import type {\n DocumentNode,\n OperationDefinitionNode,\n OperationTypeNode,\n} from 'graphql'\nimport { parse } from 'graphql'\nimport type { GraphQLVariables } from '../../handlers/GraphQLHandler'\nimport { getPublicUrlFromRequest } from '../request/getPublicUrlFromRequest'\nimport { devUtils } from './devUtils'\nimport { jsonParse } from './jsonParse'\nimport { parseMultipartData } from './parseMultipartData'\n\ninterface GraphQLInput {\n query: string | null\n variables?: GraphQLVariables\n}\n\nexport interface ParsedGraphQLQuery {\n operationType: OperationTypeNode\n operationName?: string\n}\n\nexport type ParsedGraphQLRequest<\n VariablesType extends GraphQLVariables = GraphQLVariables,\n> =\n | (ParsedGraphQLQuery & {\n query: string\n variables?: VariablesType\n })\n | undefined\n\nexport function parseDocumentNode(node: DocumentNode): ParsedGraphQLQuery {\n const operationDef = node.definitions.find((definition) => {\n return definition.kind === 'OperationDefinition'\n }) as OperationDefinitionNode\n\n return {\n operationType: operationDef?.operation,\n operationName: operationDef?.name?.value,\n }\n}\n\nfunction parseQuery(query: string): ParsedGraphQLQuery | Error {\n try {\n const ast = parse(query)\n return parseDocumentNode(ast)\n } catch (error) {\n return error as Error\n }\n}\n\nexport type GraphQLParsedOperationsMap = Record<string, string[]>\nexport type GraphQLMultipartRequestBody = {\n operations: string\n map?: string\n} & {\n [fileName: string]: File\n}\n\nfunction extractMultipartVariables<VariablesType extends GraphQLVariables>(\n variables: VariablesType,\n map: GraphQLParsedOperationsMap,\n files: Record<string, File>,\n) {\n const operations = { variables }\n\n for (const [key, pathArray] of Object.entries(map)) {\n if (!(key in files)) {\n throw new Error(`Given files do not have a key '${key}' .`)\n }\n\n for (const dotPath of pathArray) {\n const [lastPath, ...reversedPaths] = dotPath.split('.').reverse()\n const paths = reversedPaths.reverse()\n let target: Record<string, any> = operations\n\n for (const path of paths) {\n if (!(path in target)) {\n throw new Error(`Property '${paths}' is not in operations.`)\n }\n\n target = target[path]\n }\n\n target[lastPath] = files[key]\n }\n }\n\n return operations.variables\n}\n\nasync function getGraphQLInput(request: Request): Promise<GraphQLInput | null> {\n switch (request.method) {\n case 'GET': {\n const url = new URL(request.url)\n const query = url.searchParams.get('query')\n const variables = url.searchParams.get('variables') || ''\n\n return {\n query,\n variables: jsonParse(variables),\n }\n }\n\n case 'POST': {\n // Clone the request so we could read its body without locking\n // the body stream to the downward consumers.\n const requestClone = request.clone()\n\n // Handle multipart body GraphQL operations.\n if (\n request.headers.get('content-type')?.includes('multipart/form-data')\n ) {\n const responseJson = parseMultipartData<GraphQLMultipartRequestBody>(\n await requestClone.text(),\n request.headers,\n )\n\n if (!responseJson) {\n return null\n }\n\n const { operations, map, ...files } = responseJson\n const parsedOperations =\n jsonParse<{ query?: string; variables?: GraphQLVariables }>(\n operations,\n ) || {}\n\n if (!parsedOperations.query) {\n return null\n }\n\n const parsedMap = jsonParse<GraphQLParsedOperationsMap>(map || '') || {}\n const variables = parsedOperations.variables\n ? extractMultipartVariables(\n parsedOperations.variables,\n parsedMap,\n files,\n )\n : {}\n\n return {\n query: parsedOperations.query,\n variables,\n }\n }\n\n // Handle plain POST GraphQL operations.\n const requestJson: {\n query: string\n variables?: GraphQLVariables\n operations?: any /** @todo Annotate this */\n } = await requestClone.json().catch(() => null)\n\n if (requestJson?.query) {\n const { query, variables } = requestJson\n\n return {\n query,\n variables,\n }\n }\n }\n\n default:\n return null\n }\n}\n\n/**\n * Determines if a given request can be considered a GraphQL request.\n * Does not parse the query and does not guarantee its validity.\n */\nexport async function parseGraphQLRequest(\n request: Request,\n): Promise<ParsedGraphQLRequest> {\n const input = await getGraphQLInput(request)\n\n if (!input || !input.query) {\n return\n }\n\n const { query, variables } = input\n const parsedResult = parseQuery(query)\n\n if (parsedResult instanceof Error) {\n const requestPublicUrl = getPublicUrlFromRequest(request)\n\n throw new Error(\n devUtils.formatMessage(\n 'Failed to intercept a GraphQL request to \"%s %s\": cannot parse query. See the error message from the parser below.\\n\\n%s',\n request.method,\n requestPublicUrl,\n parsedResult.message,\n ),\n )\n }\n\n return {\n query: input.query,\n operationType: parsedResult.operationType,\n operationName: parsedResult.operationName,\n variables,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAAsB;AAEtB,qCAAwC;AACxC,sBAAyB;AACzB,uBAA0B;AAC1B,gCAAmC;AAqB5B,SAAS,kBAAkB,MAAwC;AA/B1E;AAgCE,QAAM,eAAe,KAAK,YAAY,KAAK,CAAC,eAAe;AACzD,WAAO,WAAW,SAAS;AAAA,EAC7B,CAAC;AAED,SAAO;AAAA,IACL,eAAe,6CAAc;AAAA,IAC7B,gBAAe,kDAAc,SAAd,mBAAoB;AAAA,EACrC;AACF;AAEA,SAAS,WAAW,OAA2C;AAC7D,MAAI;AACF,UAAM,UAAM,sBAAM,KAAK;AACvB,WAAO,kBAAkB,GAAG;AAAA,EAC9B,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AAUA,SAAS,0BACP,WACA,KACA,OACA;AACA,QAAM,aAAa,EAAE,UAAU;AAE/B,aAAW,CAAC,KAAK,SAAS,KAAK,OAAO,QAAQ,GAAG,GAAG;AAClD,QAAI,EAAE,OAAO,QAAQ;AACnB,YAAM,IAAI,MAAM,kCAAkC,GAAG,KAAK;AAAA,IAC5D;AAEA,eAAW,WAAW,WAAW;AAC/B,YAAM,CAAC,UAAU,GAAG,aAAa,IAAI,QAAQ,MAAM,GAAG,EAAE,QAAQ;AAChE,YAAM,QAAQ,cAAc,QAAQ;AACpC,UAAI,SAA8B;AAElC,iBAAW,QAAQ,OAAO;AACxB,YAAI,EAAE,QAAQ,SAAS;AACrB,gBAAM,IAAI,MAAM,aAAa,KAAK,yBAAyB;AAAA,QAC7D;AAEA,iBAAS,OAAO,IAAI;AAAA,MACtB;AAEA,aAAO,QAAQ,IAAI,MAAM,GAAG;AAAA,IAC9B;AAAA,EACF;AAEA,SAAO,WAAW;AACpB;AAEA,SAAe,gBAAgB,SAAgD;AAAA;AA3F/E;AA4FE,YAAQ,QAAQ,QAAQ;AAAA,MACtB,KAAK,OAAO;AACV,cAAM,MAAM,IAAI,IAAI,QAAQ,GAAG;AAC/B,cAAM,QAAQ,IAAI,aAAa,IAAI,OAAO;AAC1C,cAAM,YAAY,IAAI,aAAa,IAAI,WAAW,KAAK;AAEvD,eAAO;AAAA,UACL;AAAA,UACA,eAAW,4BAAU,SAAS;AAAA,QAChC;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ;AAGX,cAAM,eAAe,QAAQ,MAAM;AAGnC,aACE,aAAQ,QAAQ,IAAI,cAAc,MAAlC,mBAAqC,SAAS,wBAC9C;AACA,gBAAM,mBAAe;AAAA,YACnB,MAAM,aAAa,KAAK;AAAA,YACxB,QAAQ;AAAA,UACV;AAEA,cAAI,CAAC,cAAc;AACjB,mBAAO;AAAA,UACT;AAEA,gBAAsC,mBAA9B,cAAY,IA1H5B,IA0H8C,IAAV,kBAAU,IAAV,CAApB,cAAY;AACpB,gBAAM,uBACJ;AAAA,YACE;AAAA,UACF,KAAK,CAAC;AAER,cAAI,CAAC,iBAAiB,OAAO;AAC3B,mBAAO;AAAA,UACT;AAEA,gBAAM,gBAAY,4BAAsC,OAAO,EAAE,KAAK,CAAC;AACvE,gBAAM,YAAY,iBAAiB,YAC/B;AAAA,YACE,iBAAiB;AAAA,YACjB;AAAA,YACA;AAAA,UACF,IACA,CAAC;AAEL,iBAAO;AAAA,YACL,OAAO,iBAAiB;AAAA,YACxB;AAAA,UACF;AAAA,QACF;AAGA,cAAM,cAIF,MAAM,aAAa,KAAK,EAAE,MAAM,MAAM,IAAI;AAE9C,YAAI,2CAAa,OAAO;AACtB,gBAAM,EAAE,OAAO,UAAU,IAAI;AAE7B,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAEA;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAAA;AAMA,SAAsB,oBACpB,SAC+B;AAAA;AAC/B,UAAM,QAAQ,MAAM,gBAAgB,OAAO;AAE3C,QAAI,CAAC,SAAS,CAAC,MAAM,OAAO;AAC1B;AAAA,IACF;AAEA,UAAM,EAAE,OAAO,UAAU,IAAI;AAC7B,UAAM,eAAe,WAAW,KAAK;AAErC,QAAI,wBAAwB,OAAO;AACjC,YAAM,uBAAmB,wDAAwB,OAAO;AAExD,YAAM,IAAI;AAAA,QACR,yBAAS;AAAA,UACP;AAAA,UACA,QAAQ;AAAA,UACR;AAAA,UACA,aAAa;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,OAAO,MAAM;AAAA,MACb,eAAe,aAAa;AAAA,MAC5B,eAAe,aAAa;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA;","names":[]}
@@ -163,3 +163,4 @@ export {
163
163
  parseDocumentNode,
164
164
  parseGraphQLRequest
165
165
  };
166
+ //# sourceMappingURL=parseGraphQLRequest.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/parseGraphQLRequest.ts"],"sourcesContent":["import type {\n DocumentNode,\n OperationDefinitionNode,\n OperationTypeNode,\n} from 'graphql'\nimport { parse } from 'graphql'\nimport type { GraphQLVariables } from '../../handlers/GraphQLHandler'\nimport { getPublicUrlFromRequest } from '../request/getPublicUrlFromRequest'\nimport { devUtils } from './devUtils'\nimport { jsonParse } from './jsonParse'\nimport { parseMultipartData } from './parseMultipartData'\n\ninterface GraphQLInput {\n query: string | null\n variables?: GraphQLVariables\n}\n\nexport interface ParsedGraphQLQuery {\n operationType: OperationTypeNode\n operationName?: string\n}\n\nexport type ParsedGraphQLRequest<\n VariablesType extends GraphQLVariables = GraphQLVariables,\n> =\n | (ParsedGraphQLQuery & {\n query: string\n variables?: VariablesType\n })\n | undefined\n\nexport function parseDocumentNode(node: DocumentNode): ParsedGraphQLQuery {\n const operationDef = node.definitions.find((definition) => {\n return definition.kind === 'OperationDefinition'\n }) as OperationDefinitionNode\n\n return {\n operationType: operationDef?.operation,\n operationName: operationDef?.name?.value,\n }\n}\n\nfunction parseQuery(query: string): ParsedGraphQLQuery | Error {\n try {\n const ast = parse(query)\n return parseDocumentNode(ast)\n } catch (error) {\n return error as Error\n }\n}\n\nexport type GraphQLParsedOperationsMap = Record<string, string[]>\nexport type GraphQLMultipartRequestBody = {\n operations: string\n map?: string\n} & {\n [fileName: string]: File\n}\n\nfunction extractMultipartVariables<VariablesType extends GraphQLVariables>(\n variables: VariablesType,\n map: GraphQLParsedOperationsMap,\n files: Record<string, File>,\n) {\n const operations = { variables }\n\n for (const [key, pathArray] of Object.entries(map)) {\n if (!(key in files)) {\n throw new Error(`Given files do not have a key '${key}' .`)\n }\n\n for (const dotPath of pathArray) {\n const [lastPath, ...reversedPaths] = dotPath.split('.').reverse()\n const paths = reversedPaths.reverse()\n let target: Record<string, any> = operations\n\n for (const path of paths) {\n if (!(path in target)) {\n throw new Error(`Property '${paths}' is not in operations.`)\n }\n\n target = target[path]\n }\n\n target[lastPath] = files[key]\n }\n }\n\n return operations.variables\n}\n\nasync function getGraphQLInput(request: Request): Promise<GraphQLInput | null> {\n switch (request.method) {\n case 'GET': {\n const url = new URL(request.url)\n const query = url.searchParams.get('query')\n const variables = url.searchParams.get('variables') || ''\n\n return {\n query,\n variables: jsonParse(variables),\n }\n }\n\n case 'POST': {\n // Clone the request so we could read its body without locking\n // the body stream to the downward consumers.\n const requestClone = request.clone()\n\n // Handle multipart body GraphQL operations.\n if (\n request.headers.get('content-type')?.includes('multipart/form-data')\n ) {\n const responseJson = parseMultipartData<GraphQLMultipartRequestBody>(\n await requestClone.text(),\n request.headers,\n )\n\n if (!responseJson) {\n return null\n }\n\n const { operations, map, ...files } = responseJson\n const parsedOperations =\n jsonParse<{ query?: string; variables?: GraphQLVariables }>(\n operations,\n ) || {}\n\n if (!parsedOperations.query) {\n return null\n }\n\n const parsedMap = jsonParse<GraphQLParsedOperationsMap>(map || '') || {}\n const variables = parsedOperations.variables\n ? extractMultipartVariables(\n parsedOperations.variables,\n parsedMap,\n files,\n )\n : {}\n\n return {\n query: parsedOperations.query,\n variables,\n }\n }\n\n // Handle plain POST GraphQL operations.\n const requestJson: {\n query: string\n variables?: GraphQLVariables\n operations?: any /** @todo Annotate this */\n } = await requestClone.json().catch(() => null)\n\n if (requestJson?.query) {\n const { query, variables } = requestJson\n\n return {\n query,\n variables,\n }\n }\n }\n\n default:\n return null\n }\n}\n\n/**\n * Determines if a given request can be considered a GraphQL request.\n * Does not parse the query and does not guarantee its validity.\n */\nexport async function parseGraphQLRequest(\n request: Request,\n): Promise<ParsedGraphQLRequest> {\n const input = await getGraphQLInput(request)\n\n if (!input || !input.query) {\n return\n }\n\n const { query, variables } = input\n const parsedResult = parseQuery(query)\n\n if (parsedResult instanceof Error) {\n const requestPublicUrl = getPublicUrlFromRequest(request)\n\n throw new Error(\n devUtils.formatMessage(\n 'Failed to intercept a GraphQL request to \"%s %s\": cannot parse query. See the error message from the parser below.\\n\\n%s',\n request.method,\n requestPublicUrl,\n parsedResult.message,\n ),\n )\n }\n\n return {\n query: input.query,\n operationType: parsedResult.operationType,\n operationName: parsedResult.operationName,\n variables,\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,10 @@
1
+ import { d as DefaultRequestMultipartBody } from '../../RequestHandler-vxZdj6Tw.mjs';
2
+ import '../../typeUtils.mjs';
3
+
4
+ /**
5
+ * Parses a given string as a multipart/form-data.
6
+ * Does not throw an exception on an invalid multipart string.
7
+ */
8
+ declare function parseMultipartData<T extends DefaultRequestMultipartBody>(data: string, headers?: Headers): T | undefined;
9
+
10
+ export { parseMultipartData };
@@ -1,4 +1,4 @@
1
- import { d as DefaultRequestMultipartBody } from '../../RequestHandler-50ddea0c.js';
1
+ import { d as DefaultRequestMultipartBody } from '../../RequestHandler-rBDJQrEf.js';
2
2
  import '../../typeUtils.js';
3
3
 
4
4
  /**
@@ -79,3 +79,4 @@ function parseMultipartData(data, headers) {
79
79
  return void 0;
80
80
  }
81
81
  }
82
+ //# sourceMappingURL=parseMultipartData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/parseMultipartData.ts"],"sourcesContent":["import { stringToHeaders } from 'headers-polyfill'\nimport { DefaultRequestMultipartBody } from '../../handlers/RequestHandler'\n\ninterface ParsedContentHeaders {\n name: string\n filename?: string\n contentType: string\n}\n\ninterface ContentDispositionDirective {\n [key: string]: string | undefined\n name: string\n filename?: string\n 'form-data': string\n}\n\nfunction parseContentHeaders(headersString: string): ParsedContentHeaders {\n const headers = stringToHeaders(headersString)\n const contentType = headers.get('content-type') || 'text/plain'\n const disposition = headers.get('content-disposition')\n\n if (!disposition) {\n throw new Error('\"Content-Disposition\" header is required.')\n }\n\n const directives = disposition.split(';').reduce((acc, chunk) => {\n const [name, ...rest] = chunk.trim().split('=')\n acc[name] = rest.join('=')\n return acc\n }, {} as ContentDispositionDirective)\n\n const name = directives.name?.slice(1, -1)\n const filename = directives.filename?.slice(1, -1)\n\n return {\n name,\n filename,\n contentType,\n }\n}\n\n/**\n * Parses a given string as a multipart/form-data.\n * Does not throw an exception on an invalid multipart string.\n */\nexport function parseMultipartData<T extends DefaultRequestMultipartBody>(\n data: string,\n headers?: Headers,\n): T | undefined {\n const contentType = headers?.get('content-type')\n\n if (!contentType) {\n return undefined\n }\n\n const [, ...directives] = contentType.split(/; */)\n const boundary = directives\n .filter((d) => d.startsWith('boundary='))\n .map((s) => s.replace(/^boundary=/, ''))[0]\n\n if (!boundary) {\n return undefined\n }\n\n const boundaryRegExp = new RegExp(`--+${boundary}`)\n const fields = data\n .split(boundaryRegExp)\n .filter((chunk) => chunk.startsWith('\\r\\n') && chunk.endsWith('\\r\\n'))\n .map((chunk) => chunk.trimStart().replace(/\\r\\n$/, ''))\n\n if (!fields.length) {\n return undefined\n }\n\n const parsedBody: DefaultRequestMultipartBody = {}\n\n try {\n for (const field of fields) {\n const [contentHeaders, ...rest] = field.split('\\r\\n\\r\\n')\n const contentBody = rest.join('\\r\\n\\r\\n')\n const { contentType, filename, name } =\n parseContentHeaders(contentHeaders)\n\n const value =\n filename === undefined\n ? contentBody\n : new File([contentBody], filename, { type: contentType })\n\n const parsedValue = parsedBody[name]\n\n if (parsedValue === undefined) {\n parsedBody[name] = value\n } else if (Array.isArray(parsedValue)) {\n parsedBody[name] = [...parsedValue, value]\n } else {\n parsedBody[name] = [parsedValue, value]\n }\n }\n\n return parsedBody as T\n } catch (error) {\n return undefined\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAgC;AAgBhC,SAAS,oBAAoB,eAA6C;AAhB1E;AAiBE,QAAM,cAAU,yCAAgB,aAAa;AAC7C,QAAM,cAAc,QAAQ,IAAI,cAAc,KAAK;AACnD,QAAM,cAAc,QAAQ,IAAI,qBAAqB;AAErD,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AAEA,QAAM,aAAa,YAAY,MAAM,GAAG,EAAE,OAAO,CAAC,KAAK,UAAU;AAC/D,UAAM,CAACA,OAAM,GAAG,IAAI,IAAI,MAAM,KAAK,EAAE,MAAM,GAAG;AAC9C,QAAIA,KAAI,IAAI,KAAK,KAAK,GAAG;AACzB,WAAO;AAAA,EACT,GAAG,CAAC,CAAgC;AAEpC,QAAM,QAAO,gBAAW,SAAX,mBAAiB,MAAM,GAAG;AACvC,QAAM,YAAW,gBAAW,aAAX,mBAAqB,MAAM,GAAG;AAE/C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAMO,SAAS,mBACd,MACA,SACe;AACf,QAAM,cAAc,mCAAS,IAAI;AAEjC,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,EAAE,GAAG,UAAU,IAAI,YAAY,MAAM,KAAK;AACjD,QAAM,WAAW,WACd,OAAO,CAAC,MAAM,EAAE,WAAW,WAAW,CAAC,EACvC,IAAI,CAAC,MAAM,EAAE,QAAQ,cAAc,EAAE,CAAC,EAAE,CAAC;AAE5C,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,IAAI,OAAO,MAAM,QAAQ,EAAE;AAClD,QAAM,SAAS,KACZ,MAAM,cAAc,EACpB,OAAO,CAAC,UAAU,MAAM,WAAW,MAAM,KAAK,MAAM,SAAS,MAAM,CAAC,EACpE,IAAI,CAAC,UAAU,MAAM,UAAU,EAAE,QAAQ,SAAS,EAAE,CAAC;AAExD,MAAI,CAAC,OAAO,QAAQ;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,aAA0C,CAAC;AAEjD,MAAI;AACF,eAAW,SAAS,QAAQ;AAC1B,YAAM,CAAC,gBAAgB,GAAG,IAAI,IAAI,MAAM,MAAM,UAAU;AACxD,YAAM,cAAc,KAAK,KAAK,UAAU;AACxC,YAAM,EAAE,aAAAC,cAAa,UAAU,KAAK,IAClC,oBAAoB,cAAc;AAEpC,YAAM,QACJ,aAAa,SACT,cACA,IAAI,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE,MAAMA,aAAY,CAAC;AAE7D,YAAM,cAAc,WAAW,IAAI;AAEnC,UAAI,gBAAgB,QAAW;AAC7B,mBAAW,IAAI,IAAI;AAAA,MACrB,WAAW,MAAM,QAAQ,WAAW,GAAG;AACrC,mBAAW,IAAI,IAAI,CAAC,GAAG,aAAa,KAAK;AAAA,MAC3C,OAAO;AACL,mBAAW,IAAI,IAAI,CAAC,aAAa,KAAK;AAAA,MACxC;AAAA,IACF;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;","names":["name","contentType"]}
@@ -59,3 +59,4 @@ function parseMultipartData(data, headers) {
59
59
  export {
60
60
  parseMultipartData
61
61
  };
62
+ //# sourceMappingURL=parseMultipartData.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/parseMultipartData.ts"],"sourcesContent":["import { stringToHeaders } from 'headers-polyfill'\nimport { DefaultRequestMultipartBody } from '../../handlers/RequestHandler'\n\ninterface ParsedContentHeaders {\n name: string\n filename?: string\n contentType: string\n}\n\ninterface ContentDispositionDirective {\n [key: string]: string | undefined\n name: string\n filename?: string\n 'form-data': string\n}\n\nfunction parseContentHeaders(headersString: string): ParsedContentHeaders {\n const headers = stringToHeaders(headersString)\n const contentType = headers.get('content-type') || 'text/plain'\n const disposition = headers.get('content-disposition')\n\n if (!disposition) {\n throw new Error('\"Content-Disposition\" header is required.')\n }\n\n const directives = disposition.split(';').reduce((acc, chunk) => {\n const [name, ...rest] = chunk.trim().split('=')\n acc[name] = rest.join('=')\n return acc\n }, {} as ContentDispositionDirective)\n\n const name = directives.name?.slice(1, -1)\n const filename = directives.filename?.slice(1, -1)\n\n return {\n name,\n filename,\n contentType,\n }\n}\n\n/**\n * Parses a given string as a multipart/form-data.\n * Does not throw an exception on an invalid multipart string.\n */\nexport function parseMultipartData<T extends DefaultRequestMultipartBody>(\n data: string,\n headers?: Headers,\n): T | undefined {\n const contentType = headers?.get('content-type')\n\n if (!contentType) {\n return undefined\n }\n\n const [, ...directives] = contentType.split(/; */)\n const boundary = directives\n .filter((d) => d.startsWith('boundary='))\n .map((s) => s.replace(/^boundary=/, ''))[0]\n\n if (!boundary) {\n return undefined\n }\n\n const boundaryRegExp = new RegExp(`--+${boundary}`)\n const fields = data\n .split(boundaryRegExp)\n .filter((chunk) => chunk.startsWith('\\r\\n') && chunk.endsWith('\\r\\n'))\n .map((chunk) => chunk.trimStart().replace(/\\r\\n$/, ''))\n\n if (!fields.length) {\n return undefined\n }\n\n const parsedBody: DefaultRequestMultipartBody = {}\n\n try {\n for (const field of fields) {\n const [contentHeaders, ...rest] = field.split('\\r\\n\\r\\n')\n const contentBody = rest.join('\\r\\n\\r\\n')\n const { contentType, filename, name } =\n parseContentHeaders(contentHeaders)\n\n const value =\n filename === undefined\n ? contentBody\n : new File([contentBody], filename, { type: contentType })\n\n const parsedValue = parsedBody[name]\n\n if (parsedValue === undefined) {\n parsedBody[name] = value\n } else if (Array.isArray(parsedValue)) {\n parsedBody[name] = [...parsedValue, value]\n } else {\n parsedBody[name] = [parsedValue, value]\n }\n }\n\n return parsedBody as T\n } catch (error) {\n return undefined\n }\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAgBhC,SAAS,oBAAoB,eAA6C;AAhB1E;AAiBE,QAAM,UAAU,gBAAgB,aAAa;AAC7C,QAAM,cAAc,QAAQ,IAAI,cAAc,KAAK;AACnD,QAAM,cAAc,QAAQ,IAAI,qBAAqB;AAErD,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AAEA,QAAM,aAAa,YAAY,MAAM,GAAG,EAAE,OAAO,CAAC,KAAK,UAAU;AAC/D,UAAM,CAACA,OAAM,GAAG,IAAI,IAAI,MAAM,KAAK,EAAE,MAAM,GAAG;AAC9C,QAAIA,KAAI,IAAI,KAAK,KAAK,GAAG;AACzB,WAAO;AAAA,EACT,GAAG,CAAC,CAAgC;AAEpC,QAAM,QAAO,gBAAW,SAAX,mBAAiB,MAAM,GAAG;AACvC,QAAM,YAAW,gBAAW,aAAX,mBAAqB,MAAM,GAAG;AAE/C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAMO,SAAS,mBACd,MACA,SACe;AACf,QAAM,cAAc,mCAAS,IAAI;AAEjC,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,EAAE,GAAG,UAAU,IAAI,YAAY,MAAM,KAAK;AACjD,QAAM,WAAW,WACd,OAAO,CAAC,MAAM,EAAE,WAAW,WAAW,CAAC,EACvC,IAAI,CAAC,MAAM,EAAE,QAAQ,cAAc,EAAE,CAAC,EAAE,CAAC;AAE5C,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,IAAI,OAAO,MAAM,QAAQ,EAAE;AAClD,QAAM,SAAS,KACZ,MAAM,cAAc,EACpB,OAAO,CAAC,UAAU,MAAM,WAAW,MAAM,KAAK,MAAM,SAAS,MAAM,CAAC,EACpE,IAAI,CAAC,UAAU,MAAM,UAAU,EAAE,QAAQ,SAAS,EAAE,CAAC;AAExD,MAAI,CAAC,OAAO,QAAQ;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,aAA0C,CAAC;AAEjD,MAAI;AACF,eAAW,SAAS,QAAQ;AAC1B,YAAM,CAAC,gBAAgB,GAAG,IAAI,IAAI,MAAM,MAAM,UAAU;AACxD,YAAM,cAAc,KAAK,KAAK,UAAU;AACxC,YAAM,EAAE,aAAAC,cAAa,UAAU,KAAK,IAClC,oBAAoB,cAAc;AAEpC,YAAM,QACJ,aAAa,SACT,cACA,IAAI,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE,MAAMA,aAAY,CAAC;AAE7D,YAAM,cAAc,WAAW,IAAI;AAEnC,UAAI,gBAAgB,QAAW;AAC7B,mBAAW,IAAI,IAAI;AAAA,MACrB,WAAW,MAAM,QAAQ,WAAW,GAAG;AACrC,mBAAW,IAAI,IAAI,CAAC,GAAG,aAAa,KAAK;AAAA,MAC3C,OAAO;AACL,mBAAW,IAAI,IAAI,CAAC,aAAa,KAAK;AAAA,MACxC;AAAA,IACF;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;","names":["name","contentType"]}
@@ -0,0 +1,8 @@
1
+ import { EventMap, Emitter } from 'strict-event-emitter';
2
+
3
+ /**
4
+ * Pipes all emitted events from one emitter to another.
5
+ */
6
+ declare function pipeEvents<Events extends EventMap>(source: Emitter<Events>, destination: Emitter<Events>): void;
7
+
8
+ export { pipeEvents };
@@ -33,3 +33,4 @@ function pipeEvents(source, destination) {
33
33
  sourceEmit._isPiped = true;
34
34
  source.emit = sourceEmit;
35
35
  }
36
+ //# sourceMappingURL=pipeEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/pipeEvents.ts"],"sourcesContent":["import { Emitter, EventMap } from 'strict-event-emitter'\n\n/**\n * Pipes all emitted events from one emitter to another.\n */\nexport function pipeEvents<Events extends EventMap>(\n source: Emitter<Events>,\n destination: Emitter<Events>,\n): void {\n const rawEmit: typeof source.emit & { _isPiped?: boolean } = source.emit\n\n if (rawEmit._isPiped) {\n return\n }\n\n const sourceEmit: typeof source.emit & { _isPiped?: boolean } =\n function sourceEmit(this: typeof source, event, ...data) {\n destination.emit(event, ...data)\n return rawEmit.call(this, event, ...data)\n }\n\n sourceEmit._isPiped = true\n\n source.emit = sourceEmit\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,SAAS,WACd,QACA,aACM;AACN,QAAM,UAAuD,OAAO;AAEpE,MAAI,QAAQ,UAAU;AACpB;AAAA,EACF;AAEA,QAAM,aACJ,SAASA,YAAgC,UAAU,MAAM;AACvD,gBAAY,KAAK,OAAO,GAAG,IAAI;AAC/B,WAAO,QAAQ,KAAK,MAAM,OAAO,GAAG,IAAI;AAAA,EAC1C;AAEF,aAAW,WAAW;AAEtB,SAAO,OAAO;AAChB;","names":["sourceEmit"]}
@@ -13,3 +13,4 @@ function pipeEvents(source, destination) {
13
13
  export {
14
14
  pipeEvents
15
15
  };
16
+ //# sourceMappingURL=pipeEvents.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/pipeEvents.ts"],"sourcesContent":["import { Emitter, EventMap } from 'strict-event-emitter'\n\n/**\n * Pipes all emitted events from one emitter to another.\n */\nexport function pipeEvents<Events extends EventMap>(\n source: Emitter<Events>,\n destination: Emitter<Events>,\n): void {\n const rawEmit: typeof source.emit & { _isPiped?: boolean } = source.emit\n\n if (rawEmit._isPiped) {\n return\n }\n\n const sourceEmit: typeof source.emit & { _isPiped?: boolean } =\n function sourceEmit(this: typeof source, event, ...data) {\n destination.emit(event, ...data)\n return rawEmit.call(this, event, ...data)\n }\n\n sourceEmit._isPiped = true\n\n source.emit = sourceEmit\n}\n"],"mappings":"AAKO,SAAS,WACd,QACA,aACM;AACN,QAAM,UAAuD,OAAO;AAEpE,MAAI,QAAQ,UAAU;AACpB;AAAA,EACF;AAEA,QAAM,aACJ,SAASA,YAAgC,UAAU,MAAM;AACvD,gBAAY,KAAK,OAAO,GAAG,IAAI;AAC/B,WAAO,QAAQ,KAAK,MAAM,OAAO,GAAG,IAAI;AAAA,EAC1C;AAEF,aAAW,WAAW;AAEtB,SAAO,OAAO;AAChB;","names":["sourceEmit"]}
@@ -0,0 +1,8 @@
1
+ import { R as RequestHandler, g as RequestHandlerDefaultInfo, c as RequestHandlerOptions } from '../../RequestHandler-vxZdj6Tw.mjs';
2
+ import '../../typeUtils.mjs';
3
+
4
+ declare function use(currentHandlers: Array<RequestHandler>, ...handlers: Array<RequestHandler>): void;
5
+ declare function restoreHandlers(handlers: Array<RequestHandler>): void;
6
+ declare function resetHandlers(initialHandlers: Array<RequestHandler>, ...nextHandlers: Array<RequestHandler>): RequestHandler<RequestHandlerDefaultInfo, any, any, RequestHandlerOptions>[];
7
+
8
+ export { resetHandlers, restoreHandlers, use };
@@ -1,4 +1,4 @@
1
- import { R as RequestHandler, g as RequestHandlerDefaultInfo, c as RequestHandlerOptions } from '../../RequestHandler-50ddea0c.js';
1
+ import { R as RequestHandler, g as RequestHandlerDefaultInfo, c as RequestHandlerOptions } from '../../RequestHandler-rBDJQrEf.js';
2
2
  import '../../typeUtils.js';
3
3
 
4
4
  declare function use(currentHandlers: Array<RequestHandler>, ...handlers: Array<RequestHandler>): void;
@@ -34,3 +34,4 @@ function restoreHandlers(handlers) {
34
34
  function resetHandlers(initialHandlers, ...nextHandlers) {
35
35
  return nextHandlers.length > 0 ? [...nextHandlers] : [...initialHandlers];
36
36
  }
37
+ //# sourceMappingURL=requestHandlerUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/requestHandlerUtils.ts"],"sourcesContent":["import { RequestHandler } from '../../handlers/RequestHandler'\n\nexport function use(\n currentHandlers: Array<RequestHandler>,\n ...handlers: Array<RequestHandler>\n): void {\n currentHandlers.unshift(...handlers)\n}\n\nexport function restoreHandlers(handlers: Array<RequestHandler>): void {\n handlers.forEach((handler) => {\n handler.isUsed = false\n })\n}\n\nexport function resetHandlers(\n initialHandlers: Array<RequestHandler>,\n ...nextHandlers: Array<RequestHandler>\n) {\n return nextHandlers.length > 0 ? [...nextHandlers] : [...initialHandlers]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,IACd,oBACG,UACG;AACN,kBAAgB,QAAQ,GAAG,QAAQ;AACrC;AAEO,SAAS,gBAAgB,UAAuC;AACrE,WAAS,QAAQ,CAAC,YAAY;AAC5B,YAAQ,SAAS;AAAA,EACnB,CAAC;AACH;AAEO,SAAS,cACd,oBACG,cACH;AACA,SAAO,aAAa,SAAS,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,GAAG,eAAe;AAC1E;","names":[]}
@@ -14,3 +14,4 @@ export {
14
14
  restoreHandlers,
15
15
  use
16
16
  };
17
+ //# sourceMappingURL=requestHandlerUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/requestHandlerUtils.ts"],"sourcesContent":["import { RequestHandler } from '../../handlers/RequestHandler'\n\nexport function use(\n currentHandlers: Array<RequestHandler>,\n ...handlers: Array<RequestHandler>\n): void {\n currentHandlers.unshift(...handlers)\n}\n\nexport function restoreHandlers(handlers: Array<RequestHandler>): void {\n handlers.forEach((handler) => {\n handler.isUsed = false\n })\n}\n\nexport function resetHandlers(\n initialHandlers: Array<RequestHandler>,\n ...nextHandlers: Array<RequestHandler>\n) {\n return nextHandlers.length > 0 ? [...nextHandlers] : [...initialHandlers]\n}\n"],"mappings":"AAEO,SAAS,IACd,oBACG,UACG;AACN,kBAAgB,QAAQ,GAAG,QAAQ;AACrC;AAEO,SAAS,gBAAgB,UAAuC;AACrE,WAAS,QAAQ,CAAC,YAAY;AAC5B,YAAQ,SAAS;AAAA,EACnB,CAAC;AACH;AAEO,SAAS,cACd,oBACG,cACH;AACA,SAAO,aAAa,SAAS,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,GAAG,eAAe;AAC1E;","names":[]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Creates an immutable copy of the given array.
3
+ */
4
+ declare function toReadonlyArray<T>(source: Array<T>): ReadonlyArray<T>;
5
+
6
+ export { toReadonlyArray };
@@ -26,3 +26,4 @@ function toReadonlyArray(source) {
26
26
  Object.freeze(clone);
27
27
  return clone;
28
28
  }
29
+ //# sourceMappingURL=toReadonlyArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/toReadonlyArray.ts"],"sourcesContent":["/**\n * Creates an immutable copy of the given array.\n */\nexport function toReadonlyArray<T>(source: Array<T>): ReadonlyArray<T> {\n const clone = [...source] as Array<T>\n Object.freeze(clone)\n return clone\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,gBAAmB,QAAoC;AACrE,QAAM,QAAQ,CAAC,GAAG,MAAM;AACxB,SAAO,OAAO,KAAK;AACnB,SAAO;AACT;","names":[]}
@@ -6,3 +6,4 @@ function toReadonlyArray(source) {
6
6
  export {
7
7
  toReadonlyArray
8
8
  };
9
+ //# sourceMappingURL=toReadonlyArray.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/toReadonlyArray.ts"],"sourcesContent":["/**\n * Creates an immutable copy of the given array.\n */\nexport function toReadonlyArray<T>(source: Array<T>): ReadonlyArray<T> {\n const clone = [...source] as Array<T>\n Object.freeze(clone)\n return clone\n}\n"],"mappings":"AAGO,SAAS,gBAAmB,QAAoC;AACrE,QAAM,QAAQ,CAAC,GAAG,MAAM;AACxB,SAAO,OAAO,KAAK;AACnB,SAAO;AACT;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function tryCatch<Fn extends (...args: any[]) => any>(fn: Fn, onException?: (error: Error) => void): ReturnType<Fn> | undefined;
2
+
3
+ export { tryCatch };
@@ -29,3 +29,4 @@ function tryCatch(fn, onException) {
29
29
  onException == null ? void 0 : onException(error);
30
30
  }
31
31
  }
32
+ //# sourceMappingURL=tryCatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/tryCatch.ts"],"sourcesContent":["export function tryCatch<Fn extends (...args: any[]) => any>(\n fn: Fn,\n onException?: (error: Error) => void,\n): ReturnType<Fn> | undefined {\n try {\n const result = fn()\n return result\n } catch (error) {\n onException?.(error as Error)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,SACd,IACA,aAC4B;AAC5B,MAAI;AACF,UAAM,SAAS,GAAG;AAClB,WAAO;AAAA,EACT,SAAS,OAAO;AACd,+CAAc;AAAA,EAChB;AACF;","names":[]}
@@ -9,3 +9,4 @@ function tryCatch(fn, onException) {
9
9
  export {
10
10
  tryCatch
11
11
  };
12
+ //# sourceMappingURL=tryCatch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/tryCatch.ts"],"sourcesContent":["export function tryCatch<Fn extends (...args: any[]) => any>(\n fn: Fn,\n onException?: (error: Error) => void,\n): ReturnType<Fn> | undefined {\n try {\n const result = fn()\n return result\n } catch (error) {\n onException?.(error as Error)\n }\n}\n"],"mappings":"AAAO,SAAS,SACd,IACA,aAC4B;AAC5B,MAAI;AACF,UAAM,SAAS,GAAG;AAClB,WAAO;AAAA,EACT,SAAS,OAAO;AACd,+CAAc;AAAA,EAChB;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function uuidv4(): string;
2
+
3
+ export { uuidv4 };
@@ -24,3 +24,4 @@ module.exports = __toCommonJS(uuidv4_exports);
24
24
  function uuidv4() {
25
25
  return Math.random().toString(16).slice(2);
26
26
  }
27
+ //# sourceMappingURL=uuidv4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/uuidv4.ts"],"sourcesContent":["export function uuidv4(): string {\n return Math.random().toString(16).slice(2)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,SAAiB;AAC/B,SAAO,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC;AAC3C;","names":[]}
@@ -4,3 +4,4 @@ function uuidv4() {
4
4
  export {
5
5
  uuidv4
6
6
  };
7
+ //# sourceMappingURL=uuidv4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/uuidv4.ts"],"sourcesContent":["export function uuidv4(): string {\n return Math.random().toString(16).slice(2)\n}\n"],"mappings":"AAAO,SAAS,SAAiB;AAC/B,SAAO,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC;AAC3C;","names":[]}
@@ -0,0 +1,11 @@
1
+ declare enum StatusCodeColor {
2
+ Success = "#69AB32",
3
+ Warning = "#F0BB4B",
4
+ Danger = "#E95F5D"
5
+ }
6
+ /**
7
+ * Returns a HEX color for a given response status code number.
8
+ */
9
+ declare function getStatusCodeColor(status: number): StatusCodeColor;
10
+
11
+ export { StatusCodeColor, getStatusCodeColor };
@@ -37,3 +37,4 @@ function getStatusCodeColor(status) {
37
37
  }
38
38
  return "#E95F5D" /* Danger */;
39
39
  }
40
+ //# sourceMappingURL=getStatusCodeColor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/getStatusCodeColor.ts"],"sourcesContent":["export enum StatusCodeColor {\n Success = '#69AB32',\n Warning = '#F0BB4B',\n Danger = '#E95F5D',\n}\n\n/**\n * Returns a HEX color for a given response status code number.\n */\nexport function getStatusCodeColor(status: number): StatusCodeColor {\n if (status < 300) {\n return StatusCodeColor.Success\n }\n\n if (status < 400) {\n return StatusCodeColor.Warning\n }\n\n return StatusCodeColor.Danger\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,kBAAL,kBAAKA,qBAAL;AACL,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,YAAS;AAHC,SAAAA;AAAA,GAAA;AASL,SAAS,mBAAmB,QAAiC;AAClE,MAAI,SAAS,KAAK;AAChB,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK;AAChB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":["StatusCodeColor"]}
@@ -17,3 +17,4 @@ export {
17
17
  StatusCodeColor,
18
18
  getStatusCodeColor
19
19
  };
20
+ //# sourceMappingURL=getStatusCodeColor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/getStatusCodeColor.ts"],"sourcesContent":["export enum StatusCodeColor {\n Success = '#69AB32',\n Warning = '#F0BB4B',\n Danger = '#E95F5D',\n}\n\n/**\n * Returns a HEX color for a given response status code number.\n */\nexport function getStatusCodeColor(status: number): StatusCodeColor {\n if (status < 300) {\n return StatusCodeColor.Success\n }\n\n if (status < 400) {\n return StatusCodeColor.Warning\n }\n\n return StatusCodeColor.Danger\n}\n"],"mappings":"AAAO,IAAK,kBAAL,kBAAKA,qBAAL;AACL,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,YAAS;AAHC,SAAAA;AAAA,GAAA;AASL,SAAS,mBAAmB,QAAiC;AAClE,MAAI,SAAS,KAAK;AAChB,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK;AAChB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":["StatusCodeColor"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Returns a timestamp string in a "HH:MM:SS" format.
3
+ */
4
+ declare function getTimestamp(): string;
5
+
6
+ export { getTimestamp };
@@ -25,3 +25,4 @@ function getTimestamp() {
25
25
  const now = /* @__PURE__ */ new Date();
26
26
  return [now.getHours(), now.getMinutes(), now.getSeconds()].map(String).map((chunk) => chunk.slice(0, 2)).map((chunk) => chunk.padStart(2, "0")).join(":");
27
27
  }
28
+ //# sourceMappingURL=getTimestamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/getTimestamp.ts"],"sourcesContent":["/**\n * Returns a timestamp string in a \"HH:MM:SS\" format.\n */\nexport function getTimestamp(): string {\n const now = new Date()\n\n return [now.getHours(), now.getMinutes(), now.getSeconds()]\n .map(String)\n .map((chunk) => chunk.slice(0, 2))\n .map((chunk) => chunk.padStart(2, '0'))\n .join(':')\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,eAAuB;AACrC,QAAM,MAAM,oBAAI,KAAK;AAErB,SAAO,CAAC,IAAI,SAAS,GAAG,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,EACvD,IAAI,MAAM,EACV,IAAI,CAAC,UAAU,MAAM,MAAM,GAAG,CAAC,CAAC,EAChC,IAAI,CAAC,UAAU,MAAM,SAAS,GAAG,GAAG,CAAC,EACrC,KAAK,GAAG;AACb;","names":[]}
@@ -5,3 +5,4 @@ function getTimestamp() {
5
5
  export {
6
6
  getTimestamp
7
7
  };
8
+ //# sourceMappingURL=getTimestamp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/getTimestamp.ts"],"sourcesContent":["/**\n * Returns a timestamp string in a \"HH:MM:SS\" format.\n */\nexport function getTimestamp(): string {\n const now = new Date()\n\n return [now.getHours(), now.getMinutes(), now.getSeconds()]\n .map(String)\n .map((chunk) => chunk.slice(0, 2))\n .map((chunk) => chunk.padStart(2, '0'))\n .join(':')\n}\n"],"mappings":"AAGO,SAAS,eAAuB;AACrC,QAAM,MAAM,oBAAI,KAAK;AAErB,SAAO,CAAC,IAAI,SAAS,GAAG,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,EACvD,IAAI,MAAM,EACV,IAAI,CAAC,UAAU,MAAM,MAAM,GAAG,CAAC,CAAC,EAChC,IAAI,CAAC,UAAU,MAAM,SAAS,GAAG,GAAG,CAAC,EACrC,KAAK,GAAG;AACb;","names":[]}
@@ -0,0 +1,12 @@
1
+ interface LoggedRequest {
2
+ url: URL;
3
+ method: string;
4
+ headers: Record<string, string>;
5
+ body: string;
6
+ }
7
+ /**
8
+ * Formats a mocked request for introspection in browser's console.
9
+ */
10
+ declare function serializeRequest(request: Request): Promise<LoggedRequest>;
11
+
12
+ export { type LoggedRequest, serializeRequest };
@@ -9,4 +9,4 @@ interface LoggedRequest {
9
9
  */
10
10
  declare function serializeRequest(request: Request): Promise<LoggedRequest>;
11
11
 
12
- export { LoggedRequest, serializeRequest };
12
+ export { type LoggedRequest, serializeRequest };
@@ -53,3 +53,4 @@ function serializeRequest(request) {
53
53
  };
54
54
  });
55
55
  }
56
+ //# sourceMappingURL=serializeRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/serializeRequest.ts"],"sourcesContent":["export interface LoggedRequest {\n url: URL\n method: string\n headers: Record<string, string>\n body: string\n}\n\n/**\n * Formats a mocked request for introspection in browser's console.\n */\nexport async function serializeRequest(\n request: Request,\n): Promise<LoggedRequest> {\n const requestClone = request.clone()\n const requestText = await requestClone.text()\n\n return {\n url: new URL(request.url),\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: requestText,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAsB,iBACpB,SACwB;AAAA;AACxB,UAAM,eAAe,QAAQ,MAAM;AACnC,UAAM,cAAc,MAAM,aAAa,KAAK;AAE5C,WAAO;AAAA,MACL,KAAK,IAAI,IAAI,QAAQ,GAAG;AAAA,MACxB,QAAQ,QAAQ;AAAA,MAChB,SAAS,OAAO,YAAY,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACrD,MAAM;AAAA,IACR;AAAA,EACF;AAAA;","names":[]}
@@ -33,3 +33,4 @@ function serializeRequest(request) {
33
33
  export {
34
34
  serializeRequest
35
35
  };
36
+ //# sourceMappingURL=serializeRequest.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/serializeRequest.ts"],"sourcesContent":["export interface LoggedRequest {\n url: URL\n method: string\n headers: Record<string, string>\n body: string\n}\n\n/**\n * Formats a mocked request for introspection in browser's console.\n */\nexport async function serializeRequest(\n request: Request,\n): Promise<LoggedRequest> {\n const requestClone = request.clone()\n const requestText = await requestClone.text()\n\n return {\n url: new URL(request.url),\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: requestText,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAUA,SAAsB,iBACpB,SACwB;AAAA;AACxB,UAAM,eAAe,QAAQ,MAAM;AACnC,UAAM,cAAc,MAAM,aAAa,KAAK;AAE5C,WAAO;AAAA,MACL,KAAK,IAAI,IAAI,QAAQ,GAAG;AAAA,MACxB,QAAQ,QAAQ;AAAA,MAChB,SAAS,OAAO,YAAY,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACrD,MAAM;AAAA,IACR;AAAA,EACF;AAAA;","names":[]}
@@ -0,0 +1,9 @@
1
+ interface SerializedResponse {
2
+ status: number;
3
+ statusText: string;
4
+ headers: Record<string, any>;
5
+ body: string;
6
+ }
7
+ declare function serializeResponse(response: Response): Promise<SerializedResponse>;
8
+
9
+ export { type SerializedResponse, serializeResponse };
@@ -6,4 +6,4 @@ interface SerializedResponse {
6
6
  }
7
7
  declare function serializeResponse(response: Response): Promise<SerializedResponse>;
8
8
 
9
- export { SerializedResponse, serializeResponse };
9
+ export { type SerializedResponse, serializeResponse };
@@ -67,3 +67,4 @@ function serializeResponse(response) {
67
67
  };
68
68
  });
69
69
  }
70
+ //# sourceMappingURL=serializeResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/serializeResponse.ts"],"sourcesContent":["import statuses from '@bundled-es-modules/statuses'\n\nconst { message } = statuses\n\nexport interface SerializedResponse {\n status: number\n statusText: string\n headers: Record<string, any>\n body: string\n}\n\nexport async function serializeResponse(\n response: Response,\n): Promise<SerializedResponse> {\n const responseClone = response.clone()\n const responseText = await responseClone.text()\n\n // Normalize the response status and status text when logging\n // since the default Response instance doesn't infer status texts\n // from status codes. This has no effect on the actual response instance.\n const responseStatus = responseClone.status || 200\n const responseStatusText =\n responseClone.statusText || message[responseStatus] || 'OK'\n\n return {\n status: responseStatus,\n statusText: responseStatusText,\n headers: Object.fromEntries(responseClone.headers.entries()),\n body: responseText,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAqB;AAErB,MAAM,EAAE,QAAQ,IAAI,gBAAAA;AASpB,SAAsB,kBACpB,UAC6B;AAAA;AAC7B,UAAM,gBAAgB,SAAS,MAAM;AACrC,UAAM,eAAe,MAAM,cAAc,KAAK;AAK9C,UAAM,iBAAiB,cAAc,UAAU;AAC/C,UAAM,qBACJ,cAAc,cAAc,QAAQ,cAAc,KAAK;AAEzD,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS,OAAO,YAAY,cAAc,QAAQ,QAAQ,CAAC;AAAA,MAC3D,MAAM;AAAA,IACR;AAAA,EACF;AAAA;","names":["statuses"]}
@@ -37,3 +37,4 @@ function serializeResponse(response) {
37
37
  export {
38
38
  serializeResponse
39
39
  };
40
+ //# sourceMappingURL=serializeResponse.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/logging/serializeResponse.ts"],"sourcesContent":["import statuses from '@bundled-es-modules/statuses'\n\nconst { message } = statuses\n\nexport interface SerializedResponse {\n status: number\n statusText: string\n headers: Record<string, any>\n body: string\n}\n\nexport async function serializeResponse(\n response: Response,\n): Promise<SerializedResponse> {\n const responseClone = response.clone()\n const responseText = await responseClone.text()\n\n // Normalize the response status and status text when logging\n // since the default Response instance doesn't infer status texts\n // from status codes. This has no effect on the actual response instance.\n const responseStatus = responseClone.status || 200\n const responseStatusText =\n responseClone.statusText || message[responseStatus] || 'OK'\n\n return {\n status: responseStatus,\n statusText: responseStatusText,\n headers: Object.fromEntries(responseClone.headers.entries()),\n body: responseText,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,cAAc;AAErB,MAAM,EAAE,QAAQ,IAAI;AASpB,SAAsB,kBACpB,UAC6B;AAAA;AAC7B,UAAM,gBAAgB,SAAS,MAAM;AACrC,UAAM,eAAe,MAAM,cAAc,KAAK;AAK9C,UAAM,iBAAiB,cAAc,UAAU;AAC/C,UAAM,qBACJ,cAAc,cAAc,QAAQ,cAAc,KAAK;AAEzD,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS,OAAO,YAAY,cAAc,QAAQ,QAAQ,CAAC;AAAA,MAC3D,MAAM;AAAA,IACR;AAAA,EACF;AAAA;","names":[]}
@@ -0,0 +1,19 @@
1
+ type Path = string | RegExp;
2
+ type PathParams<KeyType extends keyof any = string> = {
3
+ [ParamName in KeyType]: string | ReadonlyArray<string>;
4
+ };
5
+ interface Match {
6
+ matches: boolean;
7
+ params?: PathParams;
8
+ }
9
+ /**
10
+ * Coerce a path supported by MSW into a path
11
+ * supported by "path-to-regexp".
12
+ */
13
+ declare function coercePath(path: string): string;
14
+ /**
15
+ * Returns the result of matching given request URL against a mask.
16
+ */
17
+ declare function matchRequestUrl(url: URL, path: Path, baseUrl?: string): Match;
18
+
19
+ export { type Match, type Path, type PathParams, coercePath, matchRequestUrl };
@@ -16,4 +16,4 @@ declare function coercePath(path: string): string;
16
16
  */
17
17
  declare function matchRequestUrl(url: URL, path: Path, baseUrl?: string): Match;
18
18
 
19
- export { Match, Path, PathParams, coercePath, matchRequestUrl };
19
+ export { type Match, type Path, type PathParams, coercePath, matchRequestUrl };
@@ -48,3 +48,4 @@ function matchRequestUrl(url, path, baseUrl) {
48
48
  params
49
49
  };
50
50
  }
51
+ //# sourceMappingURL=matchRequestUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/matching/matchRequestUrl.ts"],"sourcesContent":["import { match } from 'path-to-regexp'\nimport { getCleanUrl } from '@mswjs/interceptors'\nimport { normalizePath } from './normalizePath'\n\nexport type Path = string | RegExp\nexport type PathParams<KeyType extends keyof any = string> = {\n [ParamName in KeyType]: string | ReadonlyArray<string>\n}\n\nexport interface Match {\n matches: boolean\n params?: PathParams\n}\n\n/**\n * Coerce a path supported by MSW into a path\n * supported by \"path-to-regexp\".\n */\nexport function coercePath(path: string): string {\n return (\n path\n /**\n * Replace wildcards (\"*\") with unnamed capturing groups\n * because \"path-to-regexp\" doesn't support wildcards.\n * Ignore path parameter' modifiers (i.e. \":name*\").\n */\n .replace(\n /([:a-zA-Z_-]*)(\\*{1,2})+/g,\n (_, parameterName: string | undefined, wildcard: string) => {\n const expression = '(.*)'\n\n if (!parameterName) {\n return expression\n }\n\n return parameterName.startsWith(':')\n ? `${parameterName}${wildcard}`\n : `${parameterName}${expression}`\n },\n )\n /**\n * Escape the port so that \"path-to-regexp\" can match\n * absolute URLs including port numbers.\n */\n .replace(/([^\\/])(:)(?=\\d+)/, '$1\\\\$2')\n /**\n * Escape the protocol so that \"path-to-regexp\" could match\n * absolute URL.\n * @see https://github.com/pillarjs/path-to-regexp/issues/259\n */\n .replace(/^([^\\/]+)(:)(?=\\/\\/)/, '$1\\\\$2')\n )\n}\n\n/**\n * Returns the result of matching given request URL against a mask.\n */\nexport function matchRequestUrl(url: URL, path: Path, baseUrl?: string): Match {\n const normalizedPath = normalizePath(path, baseUrl)\n const cleanPath =\n typeof normalizedPath === 'string'\n ? coercePath(normalizedPath)\n : normalizedPath\n\n const cleanUrl = getCleanUrl(url)\n const result = match(cleanPath, { decode: decodeURIComponent })(cleanUrl)\n const params = (result && (result.params as PathParams)) || {}\n\n return {\n matches: result !== false,\n params,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAsB;AACtB,0BAA4B;AAC5B,2BAA8B;AAgBvB,SAAS,WAAW,MAAsB;AAC/C,SACE,KAMG;AAAA,IACC;AAAA,IACA,CAAC,GAAG,eAAmC,aAAqB;AAC1D,YAAM,aAAa;AAEnB,UAAI,CAAC,eAAe;AAClB,eAAO;AAAA,MACT;AAEA,aAAO,cAAc,WAAW,GAAG,IAC/B,GAAG,aAAa,GAAG,QAAQ,KAC3B,GAAG,aAAa,GAAG,UAAU;AAAA,IACnC;AAAA,EACF,EAKC,QAAQ,qBAAqB,QAAQ,EAMrC,QAAQ,wBAAwB,QAAQ;AAE/C;AAKO,SAAS,gBAAgB,KAAU,MAAY,SAAyB;AAC7E,QAAM,qBAAiB,oCAAc,MAAM,OAAO;AAClD,QAAM,YACJ,OAAO,mBAAmB,WACtB,WAAW,cAAc,IACzB;AAEN,QAAM,eAAW,iCAAY,GAAG;AAChC,QAAM,aAAS,6BAAM,WAAW,EAAE,QAAQ,mBAAmB,CAAC,EAAE,QAAQ;AACxE,QAAM,SAAU,UAAW,OAAO,UAA0B,CAAC;AAE7D,SAAO;AAAA,IACL,SAAS,WAAW;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}
@@ -28,3 +28,4 @@ export {
28
28
  coercePath,
29
29
  matchRequestUrl
30
30
  };
31
+ //# sourceMappingURL=matchRequestUrl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/matching/matchRequestUrl.ts"],"sourcesContent":["import { match } from 'path-to-regexp'\nimport { getCleanUrl } from '@mswjs/interceptors'\nimport { normalizePath } from './normalizePath'\n\nexport type Path = string | RegExp\nexport type PathParams<KeyType extends keyof any = string> = {\n [ParamName in KeyType]: string | ReadonlyArray<string>\n}\n\nexport interface Match {\n matches: boolean\n params?: PathParams\n}\n\n/**\n * Coerce a path supported by MSW into a path\n * supported by \"path-to-regexp\".\n */\nexport function coercePath(path: string): string {\n return (\n path\n /**\n * Replace wildcards (\"*\") with unnamed capturing groups\n * because \"path-to-regexp\" doesn't support wildcards.\n * Ignore path parameter' modifiers (i.e. \":name*\").\n */\n .replace(\n /([:a-zA-Z_-]*)(\\*{1,2})+/g,\n (_, parameterName: string | undefined, wildcard: string) => {\n const expression = '(.*)'\n\n if (!parameterName) {\n return expression\n }\n\n return parameterName.startsWith(':')\n ? `${parameterName}${wildcard}`\n : `${parameterName}${expression}`\n },\n )\n /**\n * Escape the port so that \"path-to-regexp\" can match\n * absolute URLs including port numbers.\n */\n .replace(/([^\\/])(:)(?=\\d+)/, '$1\\\\$2')\n /**\n * Escape the protocol so that \"path-to-regexp\" could match\n * absolute URL.\n * @see https://github.com/pillarjs/path-to-regexp/issues/259\n */\n .replace(/^([^\\/]+)(:)(?=\\/\\/)/, '$1\\\\$2')\n )\n}\n\n/**\n * Returns the result of matching given request URL against a mask.\n */\nexport function matchRequestUrl(url: URL, path: Path, baseUrl?: string): Match {\n const normalizedPath = normalizePath(path, baseUrl)\n const cleanPath =\n typeof normalizedPath === 'string'\n ? coercePath(normalizedPath)\n : normalizedPath\n\n const cleanUrl = getCleanUrl(url)\n const result = match(cleanPath, { decode: decodeURIComponent })(cleanUrl)\n const params = (result && (result.params as PathParams)) || {}\n\n return {\n matches: result !== false,\n params,\n }\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAgBvB,SAAS,WAAW,MAAsB;AAC/C,SACE,KAMG;AAAA,IACC;AAAA,IACA,CAAC,GAAG,eAAmC,aAAqB;AAC1D,YAAM,aAAa;AAEnB,UAAI,CAAC,eAAe;AAClB,eAAO;AAAA,MACT;AAEA,aAAO,cAAc,WAAW,GAAG,IAC/B,GAAG,aAAa,GAAG,QAAQ,KAC3B,GAAG,aAAa,GAAG,UAAU;AAAA,IACnC;AAAA,EACF,EAKC,QAAQ,qBAAqB,QAAQ,EAMrC,QAAQ,wBAAwB,QAAQ;AAE/C;AAKO,SAAS,gBAAgB,KAAU,MAAY,SAAyB;AAC7E,QAAM,iBAAiB,cAAc,MAAM,OAAO;AAClD,QAAM,YACJ,OAAO,mBAAmB,WACtB,WAAW,cAAc,IACzB;AAEN,QAAM,WAAW,YAAY,GAAG;AAChC,QAAM,SAAS,MAAM,WAAW,EAAE,QAAQ,mBAAmB,CAAC,EAAE,QAAQ;AACxE,QAAM,SAAU,UAAW,OAAO,UAA0B,CAAC;AAE7D,SAAO;AAAA,IACL,SAAS,WAAW;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { Path } from './matchRequestUrl.mjs';
2
+
3
+ /**
4
+ * Normalizes a given request handler path:
5
+ * - Preserves RegExp.
6
+ * - Removes query parameters and hashes.
7
+ * - Rebases relative URLs against the "baseUrl" or the current location.
8
+ * - Preserves relative URLs in Node.js, unless specified otherwise.
9
+ */
10
+ declare function normalizePath(path: Path, baseUrl?: string): Path;
11
+
12
+ export { normalizePath };
@@ -30,3 +30,4 @@ function normalizePath(path, baseUrl) {
30
30
  const maybeAbsoluteUrl = (0, import_getAbsoluteUrl.getAbsoluteUrl)(path, baseUrl);
31
31
  return (0, import_cleanUrl.cleanUrl)(maybeAbsoluteUrl);
32
32
  }
33
+ //# sourceMappingURL=normalizePath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/matching/normalizePath.ts"],"sourcesContent":["import type { Path } from './matchRequestUrl'\nimport { cleanUrl } from '../url/cleanUrl'\nimport { getAbsoluteUrl } from '../url/getAbsoluteUrl'\n\n/**\n * Normalizes a given request handler path:\n * - Preserves RegExp.\n * - Removes query parameters and hashes.\n * - Rebases relative URLs against the \"baseUrl\" or the current location.\n * - Preserves relative URLs in Node.js, unless specified otherwise.\n */\nexport function normalizePath(path: Path, baseUrl?: string): Path {\n // RegExp paths do not need normalization.\n if (path instanceof RegExp) {\n return path\n }\n\n const maybeAbsoluteUrl = getAbsoluteUrl(path, baseUrl)\n\n return cleanUrl(maybeAbsoluteUrl)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAyB;AACzB,4BAA+B;AASxB,SAAS,cAAc,MAAY,SAAwB;AAEhE,MAAI,gBAAgB,QAAQ;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,uBAAmB,sCAAe,MAAM,OAAO;AAErD,aAAO,0BAAS,gBAAgB;AAClC;","names":[]}
@@ -10,3 +10,4 @@ function normalizePath(path, baseUrl) {
10
10
  export {
11
11
  normalizePath
12
12
  };
13
+ //# sourceMappingURL=normalizePath.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/matching/normalizePath.ts"],"sourcesContent":["import type { Path } from './matchRequestUrl'\nimport { cleanUrl } from '../url/cleanUrl'\nimport { getAbsoluteUrl } from '../url/getAbsoluteUrl'\n\n/**\n * Normalizes a given request handler path:\n * - Preserves RegExp.\n * - Removes query parameters and hashes.\n * - Rebases relative URLs against the \"baseUrl\" or the current location.\n * - Preserves relative URLs in Node.js, unless specified otherwise.\n */\nexport function normalizePath(path: Path, baseUrl?: string): Path {\n // RegExp paths do not need normalization.\n if (path instanceof RegExp) {\n return path\n }\n\n const maybeAbsoluteUrl = getAbsoluteUrl(path, baseUrl)\n\n return cleanUrl(maybeAbsoluteUrl)\n}\n"],"mappings":"AACA,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AASxB,SAAS,cAAc,MAAY,SAAwB;AAEhE,MAAI,gBAAgB,QAAQ;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,mBAAmB,eAAe,MAAM,OAAO;AAErD,SAAO,SAAS,gBAAgB;AAClC;","names":[]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns a relative URL if the given request URL is relative to the current origin.
3
+ * Otherwise returns an absolute URL.
4
+ */
5
+ declare function getPublicUrlFromRequest(request: Request): string;
6
+
7
+ export { getPublicUrlFromRequest };
@@ -28,3 +28,4 @@ function getPublicUrlFromRequest(request) {
28
28
  const url = new URL(request.url);
29
29
  return url.origin === location.origin ? url.pathname : url.origin + url.pathname;
30
30
  }
31
+ //# sourceMappingURL=getPublicUrlFromRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/request/getPublicUrlFromRequest.ts"],"sourcesContent":["/**\n * Returns a relative URL if the given request URL is relative to the current origin.\n * Otherwise returns an absolute URL.\n */\nexport function getPublicUrlFromRequest(request: Request): string {\n if (typeof location === 'undefined') {\n return request.url\n }\n\n const url = new URL(request.url)\n\n return url.origin === location.origin\n ? url.pathname\n : url.origin + url.pathname\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,wBAAwB,SAA0B;AAChE,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO,QAAQ;AAAA,EACjB;AAEA,QAAM,MAAM,IAAI,IAAI,QAAQ,GAAG;AAE/B,SAAO,IAAI,WAAW,SAAS,SAC3B,IAAI,WACJ,IAAI,SAAS,IAAI;AACvB;","names":[]}
@@ -8,3 +8,4 @@ function getPublicUrlFromRequest(request) {
8
8
  export {
9
9
  getPublicUrlFromRequest
10
10
  };
11
+ //# sourceMappingURL=getPublicUrlFromRequest.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/utils/request/getPublicUrlFromRequest.ts"],"sourcesContent":["/**\n * Returns a relative URL if the given request URL is relative to the current origin.\n * Otherwise returns an absolute URL.\n */\nexport function getPublicUrlFromRequest(request: Request): string {\n if (typeof location === 'undefined') {\n return request.url\n }\n\n const url = new URL(request.url)\n\n return url.origin === location.origin\n ? url.pathname\n : url.origin + url.pathname\n}\n"],"mappings":"AAIO,SAAS,wBAAwB,SAA0B;AAChE,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO,QAAQ;AAAA,EACjB;AAEA,QAAM,MAAM,IAAI,IAAI,QAAQ,GAAG;AAE/B,SAAO,IAAI,WAAW,SAAS,SAC3B,IAAI,WACJ,IAAI,SAAS,IAAI;AACvB;","names":[]}