(function () {
const { core, internals, primordials } = __bootstrap;
const {
op_base64_encode_from_buffer,
op_inspector_emit_protocol_event,
op_inspector_enabled,
} = core.ops;
const {
ArrayBufferPrototype,
JSONStringify,
ObjectAssign,
ObjectPrototypeIsPrototypeOf,
TypeError,
TypedArrayPrototypeGetByteLength,
TypedArrayPrototypeGetSymbolToStringTag,
Uint8Array,
} = primordials;
function encodeNetworkData(data) {
if (data == null) return undefined;
if (typeof data === "string") {
const buf = core.encode(data);
return op_base64_encode_from_buffer(
buf,
0,
TypedArrayPrototypeGetByteLength(buf),
);
}
if (TypedArrayPrototypeGetSymbolToStringTag(data) === "Uint8Array") {
return op_base64_encode_from_buffer(
data,
0,
TypedArrayPrototypeGetByteLength(data),
);
}
if (ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, data)) {
const view = new Uint8Array(data);
return op_base64_encode_from_buffer(
view,
0,
TypedArrayPrototypeGetByteLength(view),
);
}
throw new TypeError(
"Expected data to be a string, Buffer, Uint8Array, or ArrayBuffer",
);
}
function emit(eventName, params) {
op_inspector_emit_protocol_event(eventName, JSONStringify(params ?? {}));
}
function emitWithData(eventName, params) {
if (params && params.data !== undefined) {
const encoded = encodeNetworkData(params.data);
if (encoded !== params.data) {
params = ObjectAssign({ __proto__: null }, params, { data: encoded });
}
}
emit(eventName, params);
}
function emitFrame(eventName, params) {
const payload = params?.response?.payloadData;
if (payload != null && typeof payload !== "string") {
let view = null;
if (TypedArrayPrototypeGetSymbolToStringTag(payload) === "Uint8Array") {
view = payload;
} else if (ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, payload)) {
view = new Uint8Array(payload);
}
if (view !== null) {
const encoded = op_base64_encode_from_buffer(
view,
0,
TypedArrayPrototypeGetByteLength(view),
);
params = ObjectAssign({ __proto__: null }, params, {
response: ObjectAssign({ __proto__: null }, params.response, {
payloadData: encoded,
}),
});
}
}
emit(eventName, params);
}
let networkRequestIdCounter = 0;
internals.__inspectorNetwork = {
isEnabled: () => op_inspector_enabled(),
nextRequestId: () => `node-network-event-${++networkRequestIdCounter}`,
requestWillBeSent: (p) => emit("Network.requestWillBeSent", p),
responseReceived: (p) => emit("Network.responseReceived", p),
loadingFinished: (p) => emit("Network.loadingFinished", p),
loadingFailed: (p) => emit("Network.loadingFailed", p),
dataReceived: (p) => emitWithData("Network.dataReceived", p),
dataSent: (p) => emitWithData("Network.dataSent", p),
webSocketCreated: (p) => emit("Network.webSocketCreated", p),
webSocketWillSendHandshakeRequest: (p) =>
emit("Network.webSocketWillSendHandshakeRequest", p),
webSocketHandshakeResponseReceived: (p) =>
emit("Network.webSocketHandshakeResponseReceived", p),
webSocketClosed: (p) => emit("Network.webSocketClosed", p),
webSocketFrameSent: (p) => emitFrame("Network.webSocketFrameSent", p),
webSocketFrameReceived: (p) => emitFrame("Network.webSocketFrameReceived", p),
webSocketFrameError: (p) => emit("Network.webSocketFrameError", p),
};
})();