Socket
Socket
Sign inDemoInstall

@mswjs/interceptors

Package Overview
Dependencies
6
Maintainers
1
Versions
122
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.28.2 to 0.28.3

lib/browser/chunk-6HYIRFX2.mjs

6

lib/browser/index.js
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkLK6DILFKjs = require('./chunk-LK6DILFK.js');
var _chunkOJ2CN4LSjs = require('./chunk-OJ2CN4LS.js');
var _chunkFZJKKO5Hjs = require('./chunk-FZJKKO5H.js');
var _chunkF2F5QHHJjs = require('./chunk-F2F5QHHJ.js');

@@ -78,3 +78,3 @@

exports.BatchInterceptor = BatchInterceptor; exports.INTERNAL_REQUEST_ID_HEADER_NAME = _chunkTIPR373Rjs.INTERNAL_REQUEST_ID_HEADER_NAME; exports.IS_PATCHED_MODULE = _chunkFZJKKO5Hjs.IS_PATCHED_MODULE; exports.Interceptor = _chunkTIPR373Rjs.Interceptor; exports.InterceptorReadyState = _chunkTIPR373Rjs.InterceptorReadyState; exports.createRequestId = _chunkTIPR373Rjs.createRequestId; exports.decodeBuffer = _chunkOJ2CN4LSjs.decodeBuffer; exports.deleteGlobalSymbol = _chunkTIPR373Rjs.deleteGlobalSymbol; exports.encodeBuffer = _chunkOJ2CN4LSjs.encodeBuffer; exports.getCleanUrl = getCleanUrl; exports.getGlobalSymbol = _chunkTIPR373Rjs.getGlobalSymbol; exports.isResponseWithoutBody = _chunkOJ2CN4LSjs.isResponseWithoutBody;
exports.BatchInterceptor = BatchInterceptor; exports.INTERNAL_REQUEST_ID_HEADER_NAME = _chunkTIPR373Rjs.INTERNAL_REQUEST_ID_HEADER_NAME; exports.IS_PATCHED_MODULE = _chunkF2F5QHHJjs.IS_PATCHED_MODULE; exports.Interceptor = _chunkTIPR373Rjs.Interceptor; exports.InterceptorReadyState = _chunkTIPR373Rjs.InterceptorReadyState; exports.createRequestId = _chunkTIPR373Rjs.createRequestId; exports.decodeBuffer = _chunkLK6DILFKjs.decodeBuffer; exports.deleteGlobalSymbol = _chunkTIPR373Rjs.deleteGlobalSymbol; exports.encodeBuffer = _chunkLK6DILFKjs.encodeBuffer; exports.getCleanUrl = getCleanUrl; exports.getGlobalSymbol = _chunkTIPR373Rjs.getGlobalSymbol; exports.isResponseWithoutBody = _chunkF2F5QHHJjs.isResponseWithoutBody;
//# sourceMappingURL=index.js.map
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkCCHELQA7js = require('../../chunk-CCHELQA7.js');
var _chunkRLGVQZ5Ojs = require('../../chunk-RLGVQZ5O.js');
require('../../chunk-MQJ3JOOK.js');
require('../../chunk-FZJKKO5H.js');
require('../../chunk-F2F5QHHJ.js');
require('../../chunk-TIPR373R.js');
exports.FetchInterceptor = _chunkCCHELQA7js.FetchInterceptor;
exports.FetchInterceptor = _chunkRLGVQZ5Ojs.FetchInterceptor;
//# sourceMappingURL=index.js.map
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkN5QZZ23Ljs = require('../../chunk-N5QZZ23L.js');
require('../../chunk-OJ2CN4LS.js');
var _chunkLAEV5ZGVjs = require('../../chunk-LAEV5ZGV.js');
require('../../chunk-LK6DILFK.js');
require('../../chunk-MQJ3JOOK.js');
require('../../chunk-FZJKKO5H.js');
require('../../chunk-F2F5QHHJ.js');
require('../../chunk-TIPR373R.js');
exports.XMLHttpRequestInterceptor = _chunkN5QZZ23Ljs.XMLHttpRequestInterceptor;
exports.XMLHttpRequestInterceptor = _chunkLAEV5ZGVjs.XMLHttpRequestInterceptor;
//# sourceMappingURL=index.js.map
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkN5QZZ23Ljs = require('../chunk-N5QZZ23L.js');
require('../chunk-OJ2CN4LS.js');
var _chunkLAEV5ZGVjs = require('../chunk-LAEV5ZGV.js');
require('../chunk-LK6DILFK.js');
var _chunkCCHELQA7js = require('../chunk-CCHELQA7.js');
var _chunkRLGVQZ5Ojs = require('../chunk-RLGVQZ5O.js');
require('../chunk-MQJ3JOOK.js');
require('../chunk-FZJKKO5H.js');
require('../chunk-F2F5QHHJ.js');
require('../chunk-TIPR373R.js');

@@ -14,4 +14,4 @@

var browser_default = [
new (0, _chunkCCHELQA7js.FetchInterceptor)(),
new (0, _chunkN5QZZ23Ljs.XMLHttpRequestInterceptor)()
new (0, _chunkRLGVQZ5Ojs.FetchInterceptor)(),
new (0, _chunkLAEV5ZGVjs.XMLHttpRequestInterceptor)()
];

@@ -18,0 +18,0 @@

"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkLMCO6WE2js = require('./chunk-LMCO6WE2.js');
var _chunkZ2DPXZWNjs = require('./chunk-Z2DPXZWN.js');

@@ -10,6 +10,5 @@

var _chunkJSSEHRRBjs = require('./chunk-JSSEHRRB.js');
var _chunkFZJKKO5Hjs = require('./chunk-FZJKKO5H.js');
var _chunkFZJKKO5Hjs = require('./chunk-FZJKKO5H.js');

@@ -21,5 +20,4 @@

var _chunkKRDNUBDZjs = require('./chunk-KRDNUBDZ.js');
var _chunkTIPR373Rjs = require('./chunk-TIPR373R.js');
// src/utils/getCleanUrl.ts

@@ -42,3 +40,3 @@ function getCleanUrl(url, isAbsolute = true) {

exports.BatchInterceptor = _chunkLMCO6WE2js.BatchInterceptor; exports.INTERNAL_REQUEST_ID_HEADER_NAME = _chunkTIPR373Rjs.INTERNAL_REQUEST_ID_HEADER_NAME; exports.IS_PATCHED_MODULE = _chunkFZJKKO5Hjs.IS_PATCHED_MODULE; exports.Interceptor = _chunkTIPR373Rjs.Interceptor; exports.InterceptorReadyState = _chunkTIPR373Rjs.InterceptorReadyState; exports.createRequestId = _chunkTIPR373Rjs.createRequestId; exports.decodeBuffer = _chunkLK6DILFKjs.decodeBuffer; exports.deleteGlobalSymbol = _chunkTIPR373Rjs.deleteGlobalSymbol; exports.encodeBuffer = _chunkLK6DILFKjs.encodeBuffer; exports.getCleanUrl = getCleanUrl; exports.getGlobalSymbol = _chunkTIPR373Rjs.getGlobalSymbol; exports.isResponseWithoutBody = _chunkJSSEHRRBjs.isResponseWithoutBody;
exports.BatchInterceptor = _chunkZ2DPXZWNjs.BatchInterceptor; exports.INTERNAL_REQUEST_ID_HEADER_NAME = _chunkKRDNUBDZjs.INTERNAL_REQUEST_ID_HEADER_NAME; exports.IS_PATCHED_MODULE = _chunkFZJKKO5Hjs.IS_PATCHED_MODULE; exports.Interceptor = _chunkKRDNUBDZjs.Interceptor; exports.InterceptorReadyState = _chunkKRDNUBDZjs.InterceptorReadyState; exports.createRequestId = _chunkKRDNUBDZjs.createRequestId; exports.decodeBuffer = _chunkLK6DILFKjs.decodeBuffer; exports.deleteGlobalSymbol = _chunkKRDNUBDZjs.deleteGlobalSymbol; exports.encodeBuffer = _chunkLK6DILFKjs.encodeBuffer; exports.getCleanUrl = getCleanUrl; exports.getGlobalSymbol = _chunkKRDNUBDZjs.getGlobalSymbol; exports.isResponseWithoutBody = _chunkKRDNUBDZjs.isResponseWithoutBody;
//# sourceMappingURL=index.js.map
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkHEEN7VICjs = require('../../chunk-HEEN7VIC.js');
require('../../chunk-JSSEHRRB.js');
var _chunkUXEUSYDYjs = require('../../chunk-UXEUSYDY.js');
require('../../chunk-Y6GRL6UD.js');
require('../../chunk-MQJ3JOOK.js');
require('../../chunk-TIPR373R.js');
require('../../chunk-KRDNUBDZ.js');
exports.ClientRequestInterceptor = _chunkHEEN7VICjs.ClientRequestInterceptor;
exports.ClientRequestInterceptor = _chunkUXEUSYDYjs.ClientRequestInterceptor;
//# sourceMappingURL=index.js.map

@@ -14,4 +14,5 @@ "use strict";Object.defineProperty(exports, "__esModule", {value: true});

var _chunkTIPR373Rjs = require('../../chunk-TIPR373R.js');
var _chunkKRDNUBDZjs = require('../../chunk-KRDNUBDZ.js');
// src/interceptors/fetch/index.ts

@@ -33,3 +34,3 @@ var _outvariant = require('outvariant');

// src/interceptors/fetch/index.ts
var _FetchInterceptor = class extends _chunkTIPR373Rjs.Interceptor {
var _FetchInterceptor = class extends _chunkKRDNUBDZjs.Interceptor {
constructor() {

@@ -49,3 +50,3 @@ super(_FetchInterceptor.symbol);

var _a;
const requestId = _chunkTIPR373Rjs.createRequestId.call(void 0, );
const requestId = _chunkKRDNUBDZjs.createRequestId.call(void 0, );
const resolvedInput = typeof input === "string" && typeof location !== "undefined" && !canParseUrl(input) ? new URL(input, location.origin) : input;

@@ -95,20 +96,22 @@ const request = new Request(resolvedInput, init);

};
const resolverResult = await _until.until.call(void 0, async () => {
const listenersFinished = _chunkMQJ3JOOKjs.emitAsync.call(void 0, this.emitter, "request", {
request: interactiveRequest,
requestId
});
await Promise.race([
requestAborted,
// Put the listeners invocation Promise in the same race condition
// with the request abort Promise because otherwise awaiting the listeners
// would always yield some response (or undefined).
listenersFinished,
requestController.responsePromise
]);
this.logger.info("all request listeners have been resolved!");
const mockedResponse2 = await requestController.responsePromise;
this.logger.info("event.respondWith called with:", mockedResponse2);
return mockedResponse2;
});
const resolverResult = await _until.until.call(void 0,
async () => {
const listenersFinished = _chunkMQJ3JOOKjs.emitAsync.call(void 0, this.emitter, "request", {
request: interactiveRequest,
requestId
});
await Promise.race([
requestAborted,
// Put the listeners invocation Promise in the same race condition
// with the request abort Promise because otherwise awaiting the listeners
// would always yield some response (or undefined).
listenersFinished,
requestController.responsePromise
]);
this.logger.info("all request listeners have been resolved!");
const mockedResponse2 = await requestController.responsePromise;
this.logger.info("event.respondWith called with:", mockedResponse2);
return mockedResponse2;
}
);
if (requestAborted.state === "rejected") {

@@ -121,16 +124,3 @@ return Promise.reject(requestAborted.rejectionReason);

}
return new Response(
JSON.stringify({
name: resolverResult.error.name,
message: resolverResult.error.message,
stack: resolverResult.error.stack
}),
{
status: 500,
statusText: "Unhandled Exception",
headers: {
"Content-Type": "application/json"
}
}
);
return _chunkKRDNUBDZjs.createServerErrorResponse.call(void 0, resolverResult.error);
}

@@ -137,0 +127,0 @@ const mockedResponse = resolverResult.data;

"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkXBHKA5EQjs = require('../../chunk-XBHKA5EQ.js');
var _chunkM4JXH4RPjs = require('../../chunk-M4JXH4RP.js');
require('../../chunk-LK6DILFK.js');
require('../../chunk-JSSEHRRB.js');
require('../../chunk-FZJKKO5H.js');
require('../../chunk-MQJ3JOOK.js');
require('../../chunk-TIPR373R.js');
require('../../chunk-KRDNUBDZ.js');
exports.XMLHttpRequestInterceptor = _chunkXBHKA5EQjs.XMLHttpRequestInterceptor;
exports.XMLHttpRequestInterceptor = _chunkM4JXH4RPjs.XMLHttpRequestInterceptor;
//# sourceMappingURL=index.js.map
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkHEEN7VICjs = require('../chunk-HEEN7VIC.js');
var _chunkUXEUSYDYjs = require('../chunk-UXEUSYDY.js');
var _chunkXBHKA5EQjs = require('../chunk-XBHKA5EQ.js');
var _chunkM4JXH4RPjs = require('../chunk-M4JXH4RP.js');
require('../chunk-LK6DILFK.js');
require('../chunk-JSSEHRRB.js');
require('../chunk-Y6GRL6UD.js');
require('../chunk-FZJKKO5H.js');
require('../chunk-MQJ3JOOK.js');
require('../chunk-TIPR373R.js');
require('../chunk-KRDNUBDZ.js');
// src/presets/node.ts
var node_default = [
new (0, _chunkHEEN7VICjs.ClientRequestInterceptor)(),
new (0, _chunkXBHKA5EQjs.XMLHttpRequestInterceptor)()
new (0, _chunkUXEUSYDYjs.ClientRequestInterceptor)(),
new (0, _chunkM4JXH4RPjs.XMLHttpRequestInterceptor)()
];

@@ -19,0 +18,0 @@

"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkLMCO6WE2js = require('./chunk-LMCO6WE2.js');
var _chunkZ2DPXZWNjs = require('./chunk-Z2DPXZWN.js');
var _chunkHEEN7VICjs = require('./chunk-HEEN7VIC.js');
var _chunkUXEUSYDYjs = require('./chunk-UXEUSYDY.js');
var _chunkXBHKA5EQjs = require('./chunk-XBHKA5EQ.js');
var _chunkM4JXH4RPjs = require('./chunk-M4JXH4RP.js');
require('./chunk-LK6DILFK.js');
require('./chunk-JSSEHRRB.js');
require('./chunk-Y6GRL6UD.js');

@@ -20,6 +19,6 @@ require('./chunk-FZJKKO5H.js');

var _chunkTIPR373Rjs = require('./chunk-TIPR373R.js');
var _chunkKRDNUBDZjs = require('./chunk-KRDNUBDZ.js');
// src/RemoteHttpInterceptor.ts
var RemoteHttpInterceptor = class extends _chunkLMCO6WE2js.BatchInterceptor {
var RemoteHttpInterceptor = class extends _chunkZ2DPXZWNjs.BatchInterceptor {
constructor() {

@@ -29,4 +28,4 @@ super({

interceptors: [
new (0, _chunkHEEN7VICjs.ClientRequestInterceptor)(),
new (0, _chunkXBHKA5EQjs.XMLHttpRequestInterceptor)()
new (0, _chunkUXEUSYDYjs.ClientRequestInterceptor)(),
new (0, _chunkM4JXH4RPjs.XMLHttpRequestInterceptor)()
]

@@ -98,3 +97,3 @@ });

}
var _RemoteHttpResolver = class extends _chunkTIPR373Rjs.Interceptor {
var _RemoteHttpResolver = class extends _chunkKRDNUBDZjs.Interceptor {
constructor(options) {

@@ -101,0 +100,0 @@ super(_RemoteHttpResolver.symbol);

{
"name": "@mswjs/interceptors",
"description": "Low-level HTTP/HTTPS/XHR/fetch request interception library.",
"version": "0.28.2",
"version": "0.28.3",
"main": "./lib/node/index.js",

@@ -6,0 +6,0 @@ "module": "./lib/node/index.mjs",

@@ -26,2 +26,3 @@ import { ClientRequest, IncomingMessage, STATUS_CODES } from 'node:http'

import { createRequestId } from '../../createRequestId'
import { createServerErrorResponse } from '../../utils/responseUtils'

@@ -224,3 +225,3 @@ export type Protocol = 'http' | 'https'

// Node.js 16 forces "ClientRequest.end" to be synchronous and return "this".
until(async () => {
until<unknown, Response | undefined>(async () => {
// Notify the interceptor about the request.

@@ -271,2 +272,3 @@ // This will call any "request" listeners the users have.

// Treat thrown Responses as mocked responses.
if (resolverResult.error instanceof Response) {

@@ -281,23 +283,10 @@ this.respondWith(resolverResult.error)

this.errorWith(resolverResult.error)
} else {
// Coerce unhandled exceptions in the "request" listeners
// as 500 responses.
this.respondWith(
new Response(
JSON.stringify({
name: resolverResult.error.name,
message: resolverResult.error.message,
stack: resolverResult.error.stack,
}),
{
status: 500,
statusText: 'Unhandled Exception',
headers: {
'Content-Type': 'application/json',
},
}
)
)
return this
}
// Unhandled exceptions in the request listeners are
// synonymous to unhandled exceptions on the server.
// Those are represented as 500 error responses.
this.respondWith(createServerErrorResponse(resolverResult.error))
return this

@@ -304,0 +293,0 @@ }

@@ -11,2 +11,3 @@ import { invariant } from 'outvariant'

import { createRequestId } from '../../createRequestId'
import { createServerErrorResponse } from '../../utils/responseUtils'

@@ -113,24 +114,26 @@ export class FetchInterceptor extends Interceptor<HttpRequestEventMap> {

const resolverResult = await until(async () => {
const listenersFinished = emitAsync(this.emitter, 'request', {
request: interactiveRequest,
requestId,
})
const resolverResult = await until<unknown, Response | undefined>(
async () => {
const listenersFinished = emitAsync(this.emitter, 'request', {
request: interactiveRequest,
requestId,
})
await Promise.race([
requestAborted,
// Put the listeners invocation Promise in the same race condition
// with the request abort Promise because otherwise awaiting the listeners
// would always yield some response (or undefined).
listenersFinished,
requestController.responsePromise,
])
await Promise.race([
requestAborted,
// Put the listeners invocation Promise in the same race condition
// with the request abort Promise because otherwise awaiting the listeners
// would always yield some response (or undefined).
listenersFinished,
requestController.responsePromise,
])
this.logger.info('all request listeners have been resolved!')
this.logger.info('all request listeners have been resolved!')
const mockedResponse = await requestController.responsePromise
this.logger.info('event.respondWith called with:', mockedResponse)
const mockedResponse = await requestController.responsePromise
this.logger.info('event.respondWith called with:', mockedResponse)
return mockedResponse
})
return mockedResponse
}
)

@@ -147,19 +150,6 @@ if (requestAborted.state === 'rejected') {

// Treat unhandled exceptions from the "request" listeners
// as 500 errors from the server. Fetch API doesn't respect
// Node.js internal errors so no special treatment for those.
return new Response(
JSON.stringify({
name: resolverResult.error.name,
message: resolverResult.error.message,
stack: resolverResult.error.stack,
}),
{
status: 500,
statusText: 'Unhandled Exception',
headers: {
'Content-Type': 'application/json',
},
}
)
// Unhandled exceptions in the request listeners are
// synonymous to unhandled exceptions on the server.
// Those are represented as 500 error responses.
return createServerErrorResponse(resolverResult.error)
}

@@ -183,3 +173,3 @@

* Set the cause of the request promise rejection to the
* network error Response instance. This different from Undici.
* network error Response instance. This differs from Undici.
* Undici will forward the "response.error" custom property

@@ -186,0 +176,0 @@ * as the rejection reason but for "Response.error()" static method

@@ -7,2 +7,3 @@ import { until } from '@open-draft/until'

import { XMLHttpRequestController } from './XMLHttpRequestController'
import { createServerErrorResponse } from '../../utils/responseUtils'

@@ -98,2 +99,3 @@ export interface XMLHttpRequestProxyOptions {

// Treat thrown Responses as mocked responses.
if (resolverResult.error instanceof Response) {

@@ -103,28 +105,9 @@ this.respondWith(resolverResult.error)

}
// Treat unhandled exceptions in the "request" listener
// as 500 server errors.
// Unhandled exceptions in the request listeners are
// synonymous to unhandled exceptions on the server.
// Those are represented as 500 error responses.
xhrRequestController.respondWith(
new Response(
JSON.stringify({
name: resolverResult.error.name,
message: resolverResult.error.message,
stack: resolverResult.error.stack,
}),
{
status: 500,
statusText: 'Unhandled Exception',
headers: {
'Content-Type': 'application/json',
},
}
)
createServerErrorResponse(resolverResult.error)
)
/**
* @todo Consider forwarding this error to the stderr as well
* since not all consumers are expecting to handle errors.
* If they don't, this error will be swallowed.
*/
// xhrRequestController.errorWith(resolverResult.error)
return

@@ -131,0 +114,0 @@ }

@@ -16,1 +16,25 @@ /**

}
/**
* Creates a generic 500 Unhandled Exception response.
*/
export function createServerErrorResponse(body: unknown): Response {
return new Response(
JSON.stringify(
body instanceof Error
? {
name: body.name,
message: body.message,
stack: body.stack,
}
: body
),
{
status: 500,
statusText: 'Unhandled Exception',
headers: {
'Content-Type': 'application/json',
},
}
)
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc