// node:inspector, refused: there is no V8 Inspector protocol session reachable from a // worker. console/Network/DOMStorage/NetworkResources are the protocol's own hooks for // a DevTools frontend (not the global console); every one of them loads, so imports // link, and every call refuses. import { refused, refusedClass } from "./refuse"; const WHY = "no V8 inspector session inside a worker"; /** `{ name: refused(module, `${prefix}.${name}`, WHY) }` for each name. */ function refuseAll(prefix: string, names: readonly string[]): Record never> { return Object.fromEntries(names.map((n) => [n, refused("inspector", `${prefix}.${n}`, WHY)])); } const CONSOLE_METHODS = [ "assert", "clear", "context", "count", "countReset", "debug", "dir", "dirxml", "error", "group", "groupCollapsed", "groupEnd", "info", "log", "profile", "profileEnd", "table", "time", "timeEnd", "timeLog", "timeStamp", "trace", "warn", ] as const; export const Session = refusedClass("inspector", "Session", WHY); export const inspector = { Session, console: refuseAll("console", CONSOLE_METHODS), Network: refuseAll("Network", [ "dataReceived", "dataSent", "loadingFailed", "loadingFinished", "requestWillBeSent", "responseReceived", "webSocketClosed", "webSocketCreated", "webSocketHandshakeResponseReceived", ]), DOMStorage: refuseAll("DOMStorage", [ "domStorageItemAdded", "domStorageItemRemoved", "domStorageItemUpdated", "domStorageItemsCleared", "registerStorage", ]), NetworkResources: refuseAll("NetworkResources", ["put"]), open: refused("inspector", "open", WHY), close: refused("inspector", "close", WHY), url: refused("inspector", "url", WHY), waitForDebugger: refused("inspector", "waitForDebugger", WHY), };