msw 2.7.6 → 2.8.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 (116) hide show
  1. package/browser/package.json +28 -3
  2. package/cli/index.js +5 -3
  3. package/cli/init.js +13 -8
  4. package/cli/invariant.js +3 -2
  5. package/cli/package.json +3 -0
  6. package/config/constants.js +9 -13
  7. package/config/package.json +3 -0
  8. package/config/scripts/postinstall.js +3 -3
  9. package/lib/browser/index.d.mts +4 -4
  10. package/lib/browser/index.d.ts +4 -4
  11. package/lib/browser/index.js +25 -25
  12. package/lib/core/{GraphQLHandler-D1CSV926.d.ts → GraphQLHandler-DOfinX9J.d.ts} +1 -1
  13. package/lib/core/{GraphQLHandler-BNMGdWQe.d.mts → GraphQLHandler-GA1kyXQ7.d.mts} +1 -1
  14. package/lib/core/{HttpResponse-BRDnWbjc.d.mts → HttpResponse-Bls5AXtT.d.mts} +9 -9
  15. package/lib/core/{HttpResponse-Cy7ytzUn.d.ts → HttpResponse-DQOloMJy.d.ts} +9 -9
  16. package/lib/core/HttpResponse.d.mts +1 -1
  17. package/lib/core/HttpResponse.d.ts +1 -1
  18. package/lib/core/HttpResponse.js +3 -6
  19. package/lib/core/HttpResponse.js.map +1 -1
  20. package/lib/core/HttpResponse.mjs +2 -5
  21. package/lib/core/HttpResponse.mjs.map +1 -1
  22. package/lib/core/SetupApi.d.mts +1 -1
  23. package/lib/core/SetupApi.d.ts +1 -1
  24. package/lib/core/SetupApi.js +4 -4
  25. package/lib/core/getResponse.d.mts +1 -1
  26. package/lib/core/getResponse.d.ts +1 -1
  27. package/lib/core/getResponse.js +1 -1
  28. package/lib/core/graphql.d.mts +4 -4
  29. package/lib/core/graphql.d.ts +4 -4
  30. package/lib/core/graphql.js +2 -2
  31. package/lib/core/graphql.js.map +1 -1
  32. package/lib/core/graphql.mjs +1 -1
  33. package/lib/core/graphql.mjs.map +1 -1
  34. package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
  35. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  36. package/lib/core/handlers/GraphQLHandler.js +10 -10
  37. package/lib/core/handlers/HttpHandler.d.mts +2 -2
  38. package/lib/core/handlers/HttpHandler.d.ts +2 -2
  39. package/lib/core/handlers/HttpHandler.js +11 -11
  40. package/lib/core/handlers/RequestHandler.d.mts +1 -1
  41. package/lib/core/handlers/RequestHandler.d.ts +1 -1
  42. package/lib/core/handlers/RequestHandler.js +2 -2
  43. package/lib/core/handlers/RequestHandler.js.map +1 -1
  44. package/lib/core/handlers/RequestHandler.mjs.map +1 -1
  45. package/lib/core/handlers/WebSocketHandler.js +2 -2
  46. package/lib/core/http.d.mts +2 -2
  47. package/lib/core/http.d.ts +2 -2
  48. package/lib/core/http.js +1 -1
  49. package/lib/core/index.d.mts +2 -2
  50. package/lib/core/index.d.ts +2 -2
  51. package/lib/core/index.js +21 -21
  52. package/lib/core/index.js.map +1 -1
  53. package/lib/core/passthrough.d.mts +2 -2
  54. package/lib/core/passthrough.d.ts +2 -2
  55. package/lib/core/passthrough.js.map +1 -1
  56. package/lib/core/passthrough.mjs.map +1 -1
  57. package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
  58. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  59. package/lib/core/utils/HttpResponse/decorators.js +1 -1
  60. package/lib/core/utils/cookieStore.js +1 -1
  61. package/lib/core/utils/executeHandlers.d.mts +1 -1
  62. package/lib/core/utils/executeHandlers.d.ts +1 -1
  63. package/lib/core/utils/handleRequest.d.mts +1 -1
  64. package/lib/core/utils/handleRequest.d.ts +1 -1
  65. package/lib/core/utils/handleRequest.js +3 -3
  66. package/lib/core/utils/internal/checkGlobals.js +1 -1
  67. package/lib/core/utils/internal/isHandlerKind.d.mts +1 -1
  68. package/lib/core/utils/internal/isHandlerKind.d.ts +1 -1
  69. package/lib/core/utils/internal/mergeRight.js +1 -1
  70. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +2 -2
  71. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  72. package/lib/core/utils/internal/parseGraphQLRequest.js +4 -4
  73. package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
  74. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  75. package/lib/core/utils/internal/requestHandlerUtils.d.mts +1 -1
  76. package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
  77. package/lib/core/utils/logging/serializeResponse.js +1 -1
  78. package/lib/core/utils/matching/matchRequestUrl.js +1 -1
  79. package/lib/core/utils/matching/normalizePath.js +2 -2
  80. package/lib/core/utils/request/getRequestCookies.js +2 -2
  81. package/lib/core/utils/request/onUnhandledRequest.js +3 -3
  82. package/lib/core/utils/request/storeResponseCookies.js +2 -2
  83. package/lib/core/utils/url/getAbsoluteUrl.js +1 -1
  84. package/lib/core/ws/WebSocketClientManager.js +2 -2
  85. package/lib/core/ws/handleWebSocketEvent.d.mts +1 -1
  86. package/lib/core/ws/handleWebSocketEvent.d.ts +1 -1
  87. package/lib/core/ws/handleWebSocketEvent.js +4 -4
  88. package/lib/core/ws/utils/attachWebSocketLogger.js +5 -5
  89. package/lib/core/ws/utils/getPublicData.js +1 -1
  90. package/lib/core/ws.js +3 -3
  91. package/lib/iife/index.js +6 -9
  92. package/lib/iife/index.js.map +1 -1
  93. package/lib/mockServiceWorker.js +1 -1
  94. package/lib/native/index.d.mts +5 -7
  95. package/lib/native/index.d.ts +5 -7
  96. package/lib/native/index.js +12 -12
  97. package/lib/native/index.js.map +1 -1
  98. package/lib/native/index.mjs +2 -2
  99. package/lib/native/index.mjs.map +1 -1
  100. package/lib/node/index.d.mts +6 -8
  101. package/lib/node/index.d.ts +6 -8
  102. package/lib/node/index.js +17 -16
  103. package/lib/node/index.js.map +1 -1
  104. package/lib/node/index.mjs +7 -6
  105. package/lib/node/index.mjs.map +1 -1
  106. package/native/package.json +25 -1
  107. package/node/package.json +28 -1
  108. package/package.json +145 -47
  109. package/src/core/HttpResponse.ts +16 -18
  110. package/src/core/graphql.ts +1 -1
  111. package/src/core/handlers/RequestHandler.ts +5 -3
  112. package/src/core/passthrough.ts +3 -3
  113. package/src/native/index.ts +1 -1
  114. package/src/node/SetupServerApi.ts +10 -6
  115. package/src/node/SetupServerCommonApi.ts +2 -2
  116. package/src/package.json +3 -0
@@ -1,5 +1,30 @@
1
1
  {
2
- "main": "../lib/browser/index.js",
3
- "module": "../lib/browser/index.mjs",
4
- "types": "../lib/browser/index.d.ts"
2
+ "type": "module",
3
+ "main": "../lib/browser/index.mjs",
4
+ "types": "../lib/browser/index.d.mts",
5
+ "exports": {
6
+ ".": {
7
+ "module-sync": {
8
+ "types": "./../lib/browser/index.d.mts",
9
+ "default": "./../lib/browser/index.mjs"
10
+ },
11
+ "module": {
12
+ "types": "./../lib/browser/index.d.mts",
13
+ "default": "./../lib/browser/index.mjs"
14
+ },
15
+ "browser": {
16
+ "types": "./../lib/browser/index.d.mts",
17
+ "default": "./../lib/browser/index.mjs"
18
+ },
19
+ "import": {
20
+ "types": "./../lib/browser/index.d.mts",
21
+ "default": "./../lib/browser/index.mjs"
22
+ },
23
+ "default": {
24
+ "types": "./../lib/browser/index.d.ts",
25
+ "default": "./../lib/browser/index.js"
26
+ }
27
+ },
28
+ "./package.json": "./package.json"
29
+ }
5
30
  }
package/cli/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
- const yargs = require('yargs')
2
+ import yargs from 'yargs'
3
+ import { init } from './init.js'
3
4
 
4
- yargs
5
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
6
+ yargs(process.argv.slice(2))
5
7
  .usage('$0 <cmd> [args]')
6
8
  .command(
7
9
  'init',
@@ -27,7 +29,7 @@ yargs
27
29
  .example('msw init ./public')
28
30
  .example('msw init ./static --save')
29
31
  },
30
- require('./init'),
32
+ init,
31
33
  )
32
34
  .demandCommand()
33
35
  .help().argv
package/cli/init.js CHANGED
@@ -1,11 +1,11 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const colors = require('picocolors')
4
- const confirm = require('@inquirer/confirm').default
5
- const invariant = require('./invariant')
6
- const { SERVICE_WORKER_BUILD_PATH } = require('../config/constants')
7
-
8
- module.exports = async function init(args) {
1
+ import fs from 'node:fs'
2
+ import path from 'node:path'
3
+ import colors from 'picocolors'
4
+ import confirm from '@inquirer/confirm'
5
+ import { invariant } from './invariant.js'
6
+ import { SERVICE_WORKER_BUILD_PATH } from '../config/constants.js'
7
+
8
+ export async function init(args) {
9
9
  const CWD = args.cwd || process.cwd()
10
10
  const publicDir = args._[1] ? normalizePath(args._[1]) : undefined
11
11
 
@@ -33,6 +33,7 @@ module.exports = async function init(args) {
33
33
  // You can also provide the "--no-save" option, and then "args.save"
34
34
  // will equal to false.
35
35
  else if (args.save == null) {
36
+ // eslint-disable-next-line no-console
36
37
  console.log(`\
37
38
  ${colors.cyan(
38
39
  'INFO',
@@ -126,6 +127,7 @@ async function copyWorkerScript(destination, cwd) {
126
127
  })
127
128
  }
128
129
 
130
+ // eslint-disable-next-line no-console
129
131
  console.log('Copying the worker script at "%s"...', absolutePublicDir)
130
132
 
131
133
  const workerFilename = path.basename(SERVICE_WORKER_BUILD_PATH)
@@ -140,6 +142,7 @@ async function copyWorkerScript(destination, cwd) {
140
142
  * @param {Array<string>} paths
141
143
  */
142
144
  function printSuccessMessage(paths) {
145
+ // eslint-disable-next-line no-console
143
146
  console.log(`
144
147
  ${colors.green('Worker script successfully copied!')}
145
148
  ${paths.map((path) => colors.gray(` - ${path}\n`))}
@@ -151,6 +154,7 @@ ${colors.red(colors.bold('https://mswjs.io/docs/getting-started'))}
151
154
  }
152
155
 
153
156
  function printFailureMessage(pathsWithErrors) {
157
+ // eslint-disable-next-line no-console
154
158
  console.error(`\
155
159
  ${colors.red('Copying the worker script failed at following paths:')}
156
160
  ${pathsWithErrors
@@ -166,6 +170,7 @@ ${pathsWithErrors
166
170
  function saveWorkerDirectory(packageJsonPath, publicDir) {
167
171
  const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
168
172
 
173
+ // eslint-disable-next-line no-console
169
174
  console.log(
170
175
  colors.gray('Updating "msw.workerDirectory" at "%s"...'),
171
176
  packageJsonPath,
package/cli/invariant.js CHANGED
@@ -1,7 +1,8 @@
1
- const colors = require('picocolors')
1
+ import colors from 'picocolors'
2
2
 
3
- module.exports = function invariant(predicate, message, ...args) {
3
+ export function invariant(predicate, message, ...args) {
4
4
  if (!predicate) {
5
+ // eslint-disable-next-line no-console
5
6
  console.error(colors.red(message), ...args)
6
7
  process.exit(1)
7
8
  }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -1,17 +1,13 @@
1
- const path = require('path')
1
+ import url from 'node:url'
2
+ import path from 'node:path'
2
3
 
3
- const SERVICE_WORKER_SOURCE_PATH = path.resolve(
4
- __dirname,
5
- '../src/mockServiceWorker.js',
4
+ export const SERVICE_WORKER_SOURCE_PATH = url.fileURLToPath(
5
+ new URL('../src/mockServiceWorker.js', import.meta.url),
6
6
  )
7
7
 
8
- const SERVICE_WORKER_BUILD_PATH = path.resolve(
9
- __dirname,
10
- '../lib',
11
- path.basename(SERVICE_WORKER_SOURCE_PATH),
8
+ export const SERVICE_WORKER_BUILD_PATH = url.fileURLToPath(
9
+ new URL(
10
+ path.join('../lib', path.basename(SERVICE_WORKER_SOURCE_PATH)),
11
+ import.meta.url,
12
+ ),
12
13
  )
13
-
14
- module.exports = {
15
- SERVICE_WORKER_SOURCE_PATH,
16
- SERVICE_WORKER_BUILD_PATH,
17
- }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -1,6 +1,6 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const { execSync } = require('child_process')
1
+ import fs from 'node:fs'
2
+ import path from 'node:path'
3
+ import { execSync } from 'node:child_process'
4
4
 
5
5
  // When executing the "postinstall" script, the "process.cwd" equals
6
6
  // the package directory, not the parent project where the package is installed.
@@ -1,7 +1,7 @@
1
- import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions";
2
- import { RequestHandler } from "../core/handlers/RequestHandler";
3
- import { WebSocketHandler } from "../core/handlers/WebSocketHandler";
4
- import { SetupApi } from "../core/SetupApi";
1
+ import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions.mjs";
2
+ import { RequestHandler } from "../core/handlers/RequestHandler.mjs";
3
+ import { WebSocketHandler } from "../core/handlers/WebSocketHandler.mjs";
4
+ import { SetupApi } from "../core/SetupApi.mjs";
5
5
 
6
6
  type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
7
7
  interface StartOptions extends SharedOptions {
@@ -1,7 +1,7 @@
1
- import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions";
2
- import { RequestHandler } from "../core/handlers/RequestHandler";
3
- import { WebSocketHandler } from "../core/handlers/WebSocketHandler";
4
- import { SetupApi } from "../core/SetupApi";
1
+ import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions.mjs";
2
+ import { RequestHandler } from "../core/handlers/RequestHandler.mjs";
3
+ import { WebSocketHandler } from "../core/handlers/WebSocketHandler.mjs";
4
+ import { SetupApi } from "../core/SetupApi.mjs";
5
5
 
6
6
  type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
7
7
  interface StartOptions extends SharedOptions {
@@ -18,12 +18,12 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
20
  // src/browser/index.ts
21
- var browser_exports = {};
22
- __export(browser_exports, {
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
23
  SetupWorkerApi: () => SetupWorkerApi,
24
24
  setupWorker: () => setupWorker
25
25
  });
26
- module.exports = __toCommonJS(browser_exports);
26
+ module.exports = __toCommonJS(index_exports);
27
27
 
28
28
  // node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/lib/index.mjs
29
29
  var POSITIONALS_EXP = /(%?)(%([sdijo]))/g;
@@ -125,7 +125,7 @@ function isNodeProcess() {
125
125
  }
126
126
 
127
127
  // src/browser/setupWorker/start/createStartHandler.ts
128
- var import_devUtils7 = require("../core/utils/internal/devUtils.js");
128
+ var import_devUtils7 = require("../core/utils/internal/devUtils");
129
129
 
130
130
  // node_modules/.pnpm/@open-draft+until@2.1.0/node_modules/@open-draft/until/lib/index.mjs
131
131
  var until = async (promise) => {
@@ -140,7 +140,7 @@ var until = async (promise) => {
140
140
  };
141
141
 
142
142
  // src/browser/setupWorker/start/utils/getWorkerInstance.ts
143
- var import_devUtils = require("../core/utils/internal/devUtils.js");
143
+ var import_devUtils = require("../core/utils/internal/devUtils");
144
144
 
145
145
  // src/browser/utils/getAbsoluteWorkerUrl.ts
146
146
  function getAbsoluteWorkerUrl(workerUrl) {
@@ -220,10 +220,10 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
220
220
  };
221
221
 
222
222
  // src/browser/setupWorker/start/utils/enableMocking.ts
223
- var import_devUtils3 = require("../core/utils/internal/devUtils.js");
223
+ var import_devUtils3 = require("../core/utils/internal/devUtils");
224
224
 
225
225
  // src/browser/setupWorker/start/utils/printStartMessage.ts
226
- var import_devUtils2 = require("../core/utils/internal/devUtils.js");
226
+ var import_devUtils2 = require("../core/utils/internal/devUtils");
227
227
  function printStartMessage(args = {}) {
228
228
  if (args.quiet) {
229
229
  return;
@@ -298,11 +298,11 @@ function parseWorkerRequest(incomingRequest) {
298
298
  }
299
299
 
300
300
  // src/browser/setupWorker/start/createRequestListener.ts
301
- var import_RequestHandler = require("../core/handlers/RequestHandler.js");
302
- var import_handleRequest = require("../core/utils/handleRequest.js");
303
- var import_devUtils4 = require("../core/utils/internal/devUtils.js");
304
- var import_toResponseInit = require("../core/utils/toResponseInit.js");
305
- var import_isHandlerKind = require("../core/utils/internal/isHandlerKind.js");
301
+ var import_RequestHandler = require("../core/handlers/RequestHandler");
302
+ var import_handleRequest = require("../core/utils/handleRequest");
303
+ var import_devUtils4 = require("../core/utils/internal/devUtils");
304
+ var import_toResponseInit = require("../core/utils/toResponseInit");
305
+ var import_isHandlerKind = require("../core/utils/internal/isHandlerKind");
306
306
  var createRequestListener = (context, options) => {
307
307
  return async (event, message) => {
308
308
  const messageChannel = new WorkerChannel(event.ports[0]);
@@ -386,7 +386,7 @@ This exception has been gracefully handled as a 500 response, however, it's stro
386
386
  };
387
387
 
388
388
  // src/browser/utils/checkWorkerIntegrity.ts
389
- var import_devUtils5 = require("../core/utils/internal/devUtils.js");
389
+ var import_devUtils5 = require("../core/utils/internal/devUtils");
390
390
  async function checkWorkerIntegrity(context) {
391
391
  context.workerChannel.send("INTEGRITY_CHECK_REQUEST");
392
392
  const { payload } = await context.events.once("INTEGRITY_CHECK_RESPONSE");
@@ -1149,7 +1149,7 @@ function createResponseListener(context) {
1149
1149
  }
1150
1150
 
1151
1151
  // src/browser/setupWorker/start/utils/validateWorkerScope.ts
1152
- var import_devUtils6 = require("../core/utils/internal/devUtils.js");
1152
+ var import_devUtils6 = require("../core/utils/internal/devUtils");
1153
1153
  function validateWorkerScope(registration, options) {
1154
1154
  if (!options?.quiet && !location.href.startsWith(registration.scope)) {
1155
1155
  import_devUtils6.devUtils.warn(
@@ -1241,10 +1241,10 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
1241
1241
  };
1242
1242
 
1243
1243
  // src/browser/setupWorker/stop/createStop.ts
1244
- var import_devUtils9 = require("../core/utils/internal/devUtils.js");
1244
+ var import_devUtils9 = require("../core/utils/internal/devUtils");
1245
1245
 
1246
1246
  // src/browser/setupWorker/stop/utils/printStopMessage.ts
1247
- var import_devUtils8 = require("../core/utils/internal/devUtils.js");
1247
+ var import_devUtils8 = require("../core/utils/internal/devUtils");
1248
1248
  function printStopMessage(args = {}) {
1249
1249
  if (args.quiet) {
1250
1250
  return;
@@ -1273,7 +1273,7 @@ var createStop = (context) => {
1273
1273
  };
1274
1274
 
1275
1275
  // src/browser/setupWorker/start/utils/prepareStartHandler.ts
1276
- var import_mergeRight = require("../core/utils/internal/mergeRight.js");
1276
+ var import_mergeRight = require("../core/utils/internal/mergeRight");
1277
1277
  var DEFAULT_START_OPTIONS = {
1278
1278
  serviceWorker: {
1279
1279
  url: "/mockServiceWorker.js",
@@ -2622,8 +2622,8 @@ var XMLHttpRequestInterceptor = _XMLHttpRequestInterceptor;
2622
2622
  XMLHttpRequestInterceptor.interceptorSymbol = Symbol("xhr");
2623
2623
 
2624
2624
  // src/browser/setupWorker/start/createFallbackRequestListener.ts
2625
- var import_handleRequest2 = require("../core/utils/handleRequest.js");
2626
- var import_isHandlerKind2 = require("../core/utils/internal/isHandlerKind.js");
2625
+ var import_handleRequest2 = require("../core/utils/handleRequest");
2626
+ var import_isHandlerKind2 = require("../core/utils/internal/isHandlerKind");
2627
2627
  function createFallbackRequestListener(context, options) {
2628
2628
  const interceptor = new BatchInterceptor({
2629
2629
  name: "fallback",
@@ -2696,9 +2696,9 @@ function createFallbackStop(context) {
2696
2696
  }
2697
2697
 
2698
2698
  // src/browser/setupWorker/setupWorker.ts
2699
- var import_devUtils10 = require("../core/utils/internal/devUtils.js");
2700
- var import_SetupApi = require("../core/SetupApi.js");
2701
- var import_mergeRight2 = require("../core/utils/internal/mergeRight.js");
2699
+ var import_devUtils10 = require("../core/utils/internal/devUtils");
2700
+ var import_SetupApi = require("../core/SetupApi");
2701
+ var import_mergeRight2 = require("../core/utils/internal/mergeRight");
2702
2702
 
2703
2703
  // src/browser/utils/supportsReadableStreamTransfer.ts
2704
2704
  function supportsReadableStreamTransfer() {
@@ -2715,9 +2715,9 @@ function supportsReadableStreamTransfer() {
2715
2715
  }
2716
2716
 
2717
2717
  // src/browser/setupWorker/setupWorker.ts
2718
- var import_webSocketInterceptor = require("../core/ws/webSocketInterceptor.js");
2719
- var import_handleWebSocketEvent = require("../core/ws/handleWebSocketEvent.js");
2720
- var import_attachWebSocketLogger = require("../core/ws/utils/attachWebSocketLogger.js");
2718
+ var import_webSocketInterceptor = require("../core/ws/webSocketInterceptor");
2719
+ var import_handleWebSocketEvent = require("../core/ws/handleWebSocketEvent");
2720
+ var import_attachWebSocketLogger = require("../core/ws/utils/attachWebSocketLogger");
2721
2721
  var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2722
2722
  context;
2723
2723
  startHandler = null;
@@ -1,5 +1,5 @@
1
1
  import { OperationTypeNode, DocumentNode, GraphQLError } from 'graphql';
2
- import { g as RequestHandlerDefaultInfo, D as DefaultBodyType, R as RequestHandler, a as ResponseResolver, c as RequestHandlerOptions } from './HttpResponse-Cy7ytzUn.js';
2
+ import { D as DefaultBodyType, R as RequestHandler, f as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions } from './HttpResponse-DQOloMJy.js';
3
3
  import { Match, Path } from './utils/matching/matchRequestUrl.js';
4
4
 
5
5
  interface ParsedGraphQLQuery {
@@ -1,5 +1,5 @@
1
1
  import { OperationTypeNode, DocumentNode, GraphQLError } from 'graphql';
2
- import { g as RequestHandlerDefaultInfo, D as DefaultBodyType, R as RequestHandler, a as ResponseResolver, c as RequestHandlerOptions } from './HttpResponse-BRDnWbjc.mjs';
2
+ import { D as DefaultBodyType, R as RequestHandler, f as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions } from './HttpResponse-Bls5AXtT.mjs';
3
3
  import { Match, Path } from './utils/matching/matchRequestUrl.mjs';
4
4
 
5
5
  interface ParsedGraphQLQuery {
@@ -31,7 +31,7 @@ interface RequestHandlerDefaultInfo {
31
31
  interface RequestHandlerInternalInfo {
32
32
  callFrame?: string;
33
33
  }
34
- type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : StrictResponse<ResponseBodyType>) | undefined | void;
34
+ type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : HttpResponse<ResponseBodyType>) | undefined | void;
35
35
  type MaybeAsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType>>;
36
36
  type AsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType> | Iterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>> | AsyncIterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>>>;
37
37
  type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType> = {
@@ -121,11 +121,11 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
121
121
  private createExecutionResult;
122
122
  }
123
123
 
124
- declare const bodyType: unique symbol;
125
124
  interface HttpResponseInit extends ResponseInit {
126
125
  type?: ResponseType;
127
126
  }
128
- interface StrictRequest<BodyType extends DefaultBodyType> extends Request {
127
+ declare const bodyType: unique symbol;
128
+ interface StrictRequest<BodyType extends JsonBodyType> extends Request {
129
129
  json(): Promise<BodyType>;
130
130
  }
131
131
  /**
@@ -145,23 +145,23 @@ interface StrictResponse<BodyType extends DefaultBodyType> extends Response {
145
145
  *
146
146
  * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}
147
147
  */
148
- declare class HttpResponse extends FetchResponse {
149
- readonly [bodyType]: any;
150
- constructor(body?: BodyInit | null, init?: HttpResponseInit);
148
+ declare class HttpResponse<BodyType extends DefaultBodyType> extends FetchResponse implements StrictResponse<BodyType> {
149
+ [bodyType]: BodyType;
150
+ constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit);
151
151
  /**
152
152
  * Create a `Response` with a `Content-Type: "text/plain"` body.
153
153
  * @example
154
154
  * HttpResponse.text('hello world')
155
155
  * HttpResponse.text('Error', { status: 500 })
156
156
  */
157
- static text<BodyType extends string>(body?: NoInfer<BodyType> | null, init?: HttpResponseInit): StrictResponse<BodyType>;
157
+ static text<BodyType extends string>(body?: NoInfer<BodyType> | null, init?: HttpResponseInit): HttpResponse<BodyType>;
158
158
  /**
159
159
  * Create a `Response` with a `Content-Type: "application/json"` body.
160
160
  * @example
161
161
  * HttpResponse.json({ firstName: 'John' })
162
162
  * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })
163
163
  */
164
- static json<BodyType extends JsonBodyType>(body?: NoInfer<BodyType> | null, init?: HttpResponseInit): StrictResponse<BodyType>;
164
+ static json<BodyType extends JsonBodyType>(body?: NoInfer<BodyType> | null | undefined, init?: HttpResponseInit): HttpResponse<BodyType>;
165
165
  /**
166
166
  * Create a `Response` with a `Content-Type: "application/xml"` body.
167
167
  * @example
@@ -197,4 +197,4 @@ declare class HttpResponse extends FetchResponse {
197
197
  static formData(body?: FormData, init?: HttpResponseInit): Response;
198
198
  }
199
199
 
200
- export { type AsyncResponseResolverReturnType as A, type DefaultBodyType as D, type HttpResponseInit as H, type JsonBodyType as J, type MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, type StrictResponse as e, HttpResponse as f, type RequestHandlerDefaultInfo as g, type ResponseResolutionContext as h, type HandlersExecutionResult as i, executeHandlers as j, type RequestHandlerInternalInfo as k, type ResponseResolverInfo as l, type RequestHandlerArgs as m, type RequestHandlerExecutionResult as n };
200
+ export { type AsyncResponseResolverReturnType as A, type DefaultBodyType as D, type HttpResponseInit as H, type JsonBodyType as J, type MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, HttpResponse as e, type RequestHandlerDefaultInfo as f, type ResponseResolutionContext as g, type HandlersExecutionResult as h, executeHandlers as i, type RequestHandlerInternalInfo as j, type ResponseResolverInfo as k, type RequestHandlerArgs as l, type RequestHandlerExecutionResult as m };
@@ -31,7 +31,7 @@ interface RequestHandlerDefaultInfo {
31
31
  interface RequestHandlerInternalInfo {
32
32
  callFrame?: string;
33
33
  }
34
- type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : StrictResponse<ResponseBodyType>) | undefined | void;
34
+ type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : HttpResponse<ResponseBodyType>) | undefined | void;
35
35
  type MaybeAsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType>>;
36
36
  type AsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType> | Iterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>> | AsyncIterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>>>;
37
37
  type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType> = {
@@ -121,11 +121,11 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
121
121
  private createExecutionResult;
122
122
  }
123
123
 
124
- declare const bodyType: unique symbol;
125
124
  interface HttpResponseInit extends ResponseInit {
126
125
  type?: ResponseType;
127
126
  }
128
- interface StrictRequest<BodyType extends DefaultBodyType> extends Request {
127
+ declare const bodyType: unique symbol;
128
+ interface StrictRequest<BodyType extends JsonBodyType> extends Request {
129
129
  json(): Promise<BodyType>;
130
130
  }
131
131
  /**
@@ -145,23 +145,23 @@ interface StrictResponse<BodyType extends DefaultBodyType> extends Response {
145
145
  *
146
146
  * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}
147
147
  */
148
- declare class HttpResponse extends FetchResponse {
149
- readonly [bodyType]: any;
150
- constructor(body?: BodyInit | null, init?: HttpResponseInit);
148
+ declare class HttpResponse<BodyType extends DefaultBodyType> extends FetchResponse implements StrictResponse<BodyType> {
149
+ [bodyType]: BodyType;
150
+ constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit);
151
151
  /**
152
152
  * Create a `Response` with a `Content-Type: "text/plain"` body.
153
153
  * @example
154
154
  * HttpResponse.text('hello world')
155
155
  * HttpResponse.text('Error', { status: 500 })
156
156
  */
157
- static text<BodyType extends string>(body?: NoInfer<BodyType> | null, init?: HttpResponseInit): StrictResponse<BodyType>;
157
+ static text<BodyType extends string>(body?: NoInfer<BodyType> | null, init?: HttpResponseInit): HttpResponse<BodyType>;
158
158
  /**
159
159
  * Create a `Response` with a `Content-Type: "application/json"` body.
160
160
  * @example
161
161
  * HttpResponse.json({ firstName: 'John' })
162
162
  * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })
163
163
  */
164
- static json<BodyType extends JsonBodyType>(body?: NoInfer<BodyType> | null, init?: HttpResponseInit): StrictResponse<BodyType>;
164
+ static json<BodyType extends JsonBodyType>(body?: NoInfer<BodyType> | null | undefined, init?: HttpResponseInit): HttpResponse<BodyType>;
165
165
  /**
166
166
  * Create a `Response` with a `Content-Type: "application/xml"` body.
167
167
  * @example
@@ -197,4 +197,4 @@ declare class HttpResponse extends FetchResponse {
197
197
  static formData(body?: FormData, init?: HttpResponseInit): Response;
198
198
  }
199
199
 
200
- export { type AsyncResponseResolverReturnType as A, type DefaultBodyType as D, type HttpResponseInit as H, type JsonBodyType as J, type MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, type StrictResponse as e, HttpResponse as f, type RequestHandlerDefaultInfo as g, type ResponseResolutionContext as h, type HandlersExecutionResult as i, executeHandlers as j, type RequestHandlerInternalInfo as k, type ResponseResolverInfo as l, type RequestHandlerArgs as m, type RequestHandlerExecutionResult as n };
200
+ export { type AsyncResponseResolverReturnType as A, type DefaultBodyType as D, type HttpResponseInit as H, type JsonBodyType as J, type MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, HttpResponse as e, type RequestHandlerDefaultInfo as f, type ResponseResolutionContext as g, type HandlersExecutionResult as h, executeHandlers as i, type RequestHandlerInternalInfo as j, type ResponseResolverInfo as k, type RequestHandlerArgs as l, type RequestHandlerExecutionResult as m };
@@ -1,4 +1,4 @@
1
1
  import '@mswjs/interceptors';
2
- export { f as HttpResponse, H as HttpResponseInit, S as StrictRequest, e as StrictResponse } from './HttpResponse-BRDnWbjc.mjs';
2
+ export { e as HttpResponse, H as HttpResponseInit, S as StrictRequest } from './HttpResponse-Bls5AXtT.mjs';
3
3
  import './typeUtils.mjs';
4
4
  import './utils/internal/isIterable.mjs';
@@ -1,4 +1,4 @@
1
1
  import '@mswjs/interceptors';
2
- export { f as HttpResponse, H as HttpResponseInit, S as StrictRequest, e as StrictResponse } from './HttpResponse-Cy7ytzUn.js';
2
+ export { e as HttpResponse, H as HttpResponseInit, S as StrictRequest } from './HttpResponse-DQOloMJy.js';
3
3
  import './typeUtils.js';
4
4
  import './utils/internal/isIterable.js';
@@ -22,10 +22,10 @@ __export(HttpResponse_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(HttpResponse_exports);
24
24
  var import_interceptors = require("@mswjs/interceptors");
25
- var import_decorators = require("./utils/HttpResponse/decorators.js");
25
+ var import_decorators = require("./utils/HttpResponse/decorators");
26
26
  const bodyType = Symbol("bodyType");
27
27
  class HttpResponse extends import_interceptors.FetchResponse {
28
- [bodyType];
28
+ [bodyType] = null;
29
29
  constructor(body, init) {
30
30
  const responseInit = (0, import_decorators.normalizeResponseInit)(init);
31
31
  super(body, responseInit);
@@ -68,10 +68,7 @@ class HttpResponse extends import_interceptors.FetchResponse {
68
68
  responseText ? new Blob([responseText]).size.toString() : "0"
69
69
  );
70
70
  }
71
- return new HttpResponse(
72
- responseText,
73
- responseInit
74
- );
71
+ return new HttpResponse(responseText, responseInit);
75
72
  }
76
73
  /**
77
74
  * Create a `Response` with a `Content-Type: "application/xml"` body.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/HttpResponse.ts"],"sourcesContent":["import { FetchResponse } from '@mswjs/interceptors'\nimport type { DefaultBodyType, JsonBodyType } from './handlers/RequestHandler'\nimport type { NoInfer } from './typeUtils'\nimport {\n decorateResponse,\n normalizeResponseInit,\n} from './utils/HttpResponse/decorators'\n\nconst bodyType = Symbol('bodyType')\n\nexport interface HttpResponseInit extends ResponseInit {\n type?: ResponseType\n}\n\nexport interface StrictRequest<BodyType extends DefaultBodyType>\n extends Request {\n json(): Promise<BodyType>\n}\n\n/**\n * Opaque `Response` type that supports strict body type.\n */\nexport interface StrictResponse<BodyType extends DefaultBodyType>\n extends Response {\n readonly [bodyType]: BodyType\n}\n\n/**\n * A drop-in replacement for the standard `Response` class\n * to allow additional features, like mocking the response `Set-Cookie` header.\n *\n * @example\n * new HttpResponse('Hello world', { status: 201 })\n * HttpResponse.json({ name: 'John' })\n * HttpResponse.formData(form)\n *\n * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}\n */\nexport class HttpResponse extends FetchResponse {\n readonly [bodyType]: any\n\n constructor(body?: BodyInit | null, init?: HttpResponseInit) {\n const responseInit = normalizeResponseInit(init)\n super(body, responseInit)\n decorateResponse(this, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text<BodyType extends string>(\n body?: NoInfer<BodyType> | null,\n init?: HttpResponseInit,\n ): StrictResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/plain')\n }\n\n // Automatically set the \"Content-Length\" response header\n // for non-empty text responses. This enforces consistency and\n // brings mocked responses closer to production.\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n body ? new Blob([body]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(body, responseInit) as StrictResponse<BodyType>\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json<BodyType extends JsonBodyType>(\n body?: NoInfer<BodyType> | null,\n init?: HttpResponseInit,\n ): StrictResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/json')\n }\n\n /**\n * @note TypeScript is incorrect here.\n * Stringifying undefined will return undefined.\n */\n const responseText = JSON.stringify(body) as string | undefined\n\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n responseText ? new Blob([responseText]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(\n responseText,\n responseInit,\n ) as StrictResponse<BodyType>\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): Response {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/xml')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): Response {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/html')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(\n body?: ArrayBuffer | SharedArrayBuffer,\n init?: HttpResponseInit,\n ): Response {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/octet-stream')\n }\n\n if (body && !responseInit.headers.has('Content-Length')) {\n responseInit.headers.set('Content-Length', body.byteLength.toString())\n }\n\n return new HttpResponse(body as ArrayBuffer, responseInit)\n }\n\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body?: FormData, init?: HttpResponseInit): Response {\n return new HttpResponse(body, normalizeResponseInit(init))\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA8B;AAG9B,wBAGO;AAEP,MAAM,WAAW,OAAO,UAAU;AA8B3B,MAAM,qBAAqB,kCAAc;AAAA,EAC9C,CAAU,QAAQ;AAAA,EAElB,YAAY,MAAwB,MAAyB;AAC3D,UAAM,mBAAe,yCAAsB,IAAI;AAC/C,UAAM,MAAM,YAAY;AACxB,4CAAiB,MAAM,YAAY;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MAC0B;AAC1B,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,YAAY;AAAA,IACvD;AAKA,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MAC0B;AAC1B,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAC7D;AAMA,UAAM,eAAe,KAAK,UAAU,IAAI;AAExC,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5D;AAAA,IACF;AAEA,WAAO,IAAI;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,IACL,MACA,MACU;AACV,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,UAAU;AAAA,IACrD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACU;AACV,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,WAAW;AAAA,IACtD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,YACL,MACA,MACU;AACV,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,0BAA0B;AAAA,IACrE;AAEA,QAAI,QAAQ,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AACvD,mBAAa,QAAQ,IAAI,kBAAkB,KAAK,WAAW,SAAS,CAAC;AAAA,IACvE;AAEA,WAAO,IAAI,aAAa,MAAqB,YAAY;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,SAAS,MAAiB,MAAmC;AAClE,WAAO,IAAI,aAAa,UAAM,yCAAsB,IAAI,CAAC;AAAA,EAC3D;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/core/HttpResponse.ts"],"sourcesContent":["import { FetchResponse } from '@mswjs/interceptors'\nimport type { DefaultBodyType, JsonBodyType } from './handlers/RequestHandler'\nimport type { NoInfer } from './typeUtils'\nimport {\n decorateResponse,\n normalizeResponseInit,\n} from './utils/HttpResponse/decorators'\n\nexport interface HttpResponseInit extends ResponseInit {\n type?: ResponseType\n}\n\nconst bodyType: unique symbol = Symbol('bodyType')\n\nexport interface StrictRequest<BodyType extends JsonBodyType> extends Request {\n json(): Promise<BodyType>\n}\n\n/**\n * Opaque `Response` type that supports strict body type.\n */\ninterface StrictResponse<BodyType extends DefaultBodyType> extends Response {\n readonly [bodyType]: BodyType\n}\n\n/**\n * A drop-in replacement for the standard `Response` class\n * to allow additional features, like mocking the response `Set-Cookie` header.\n *\n * @example\n * new HttpResponse('Hello world', { status: 201 })\n * HttpResponse.json({ name: 'John' })\n * HttpResponse.formData(form)\n *\n * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}\n */\nexport class HttpResponse<BodyType extends DefaultBodyType>\n extends FetchResponse\n implements StrictResponse<BodyType>\n{\n [bodyType]: BodyType = null as any\n\n constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit) {\n const responseInit = normalizeResponseInit(init)\n super(body as BodyInit, responseInit)\n decorateResponse(this, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text<BodyType extends string>(\n body?: NoInfer<BodyType> | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/plain')\n }\n\n // Automatically set the \"Content-Length\" response header\n // for non-empty text responses. This enforces consistency and\n // brings mocked responses closer to production.\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n body ? new Blob([body]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json<BodyType extends JsonBodyType>(\n body?: NoInfer<BodyType> | null | undefined,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/json')\n }\n\n /**\n * @note TypeScript is incorrect here.\n * Stringifying undefined will return undefined.\n */\n const responseText = JSON.stringify(body) as string | undefined\n\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n responseText ? new Blob([responseText]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(responseText as BodyType, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): Response {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/xml')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): Response {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/html')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(\n body?: ArrayBuffer | SharedArrayBuffer,\n init?: HttpResponseInit,\n ): Response {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/octet-stream')\n }\n\n if (body && !responseInit.headers.has('Content-Length')) {\n responseInit.headers.set('Content-Length', body.byteLength.toString())\n }\n\n return new HttpResponse(body as ArrayBuffer, responseInit)\n }\n\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body?: FormData, init?: HttpResponseInit): Response {\n return new HttpResponse(body, normalizeResponseInit(init))\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA8B;AAG9B,wBAGO;AAMP,MAAM,WAA0B,OAAO,UAAU;AAwB1C,MAAM,qBACH,kCAEV;AAAA,EACE,CAAC,QAAQ,IAAc;AAAA,EAEvB,YAAY,MAAiC,MAAyB;AACpE,UAAM,mBAAe,yCAAsB,IAAI;AAC/C,UAAM,MAAkB,YAAY;AACpC,4CAAiB,MAAM,YAAY;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,YAAY;AAAA,IACvD;AAKA,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAC7D;AAMA,UAAM,eAAe,KAAK,UAAU,IAAI;AAExC,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5D;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,cAA0B,YAAY;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,IACL,MACA,MACU;AACV,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,UAAU;AAAA,IACrD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACU;AACV,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,WAAW;AAAA,IACtD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,YACL,MACA,MACU;AACV,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,0BAA0B;AAAA,IACrE;AAEA,QAAI,QAAQ,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AACvD,mBAAa,QAAQ,IAAI,kBAAkB,KAAK,WAAW,SAAS,CAAC;AAAA,IACvE;AAEA,WAAO,IAAI,aAAa,MAAqB,YAAY;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,SAAS,MAAiB,MAAmC;AAClE,WAAO,IAAI,aAAa,UAAM,yCAAsB,IAAI,CAAC;AAAA,EAC3D;AACF;","names":[]}
@@ -5,7 +5,7 @@ import {
5
5
  } from './utils/HttpResponse/decorators.mjs';
6
6
  const bodyType = Symbol("bodyType");
7
7
  class HttpResponse extends FetchResponse {
8
- [bodyType];
8
+ [bodyType] = null;
9
9
  constructor(body, init) {
10
10
  const responseInit = normalizeResponseInit(init);
11
11
  super(body, responseInit);
@@ -48,10 +48,7 @@ class HttpResponse extends FetchResponse {
48
48
  responseText ? new Blob([responseText]).size.toString() : "0"
49
49
  );
50
50
  }
51
- return new HttpResponse(
52
- responseText,
53
- responseInit
54
- );
51
+ return new HttpResponse(responseText, responseInit);
55
52
  }
56
53
  /**
57
54
  * Create a `Response` with a `Content-Type: "application/xml"` body.