miniflare 0.0.0-0435d8ef5 → 0.0.0-05973bba4

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.
package/dist/src/index.js CHANGED
@@ -628,7 +628,7 @@ __export(src_exports, {
628
628
  deserialiseRegExps: () => deserialiseRegExps,
629
629
  deserialiseSiteRegExps: () => deserialiseSiteRegExps,
630
630
  encodeSitesKey: () => encodeSitesKey,
631
- fetch: () => fetch4,
631
+ fetch: () => fetch3,
632
632
  formatZodError: () => formatZodError,
633
633
  getAccessibleHosts: () => getAccessibleHosts,
634
634
  getAssetsBindingsNames: () => getAssetsBindingsNames,
@@ -770,7 +770,7 @@ function zod_worker_default() {
770
770
  }
771
771
 
772
772
  // src/index.ts
773
- var import_ws5 = require("ws");
773
+ var import_ws3 = require("ws");
774
774
  var import_zod23 = require("zod");
775
775
 
776
776
  // src/cf.ts
@@ -2359,7 +2359,7 @@ function headersFromIncomingRequest(req) {
2359
2359
  );
2360
2360
  return new undici.Headers(Object.fromEntries(entries));
2361
2361
  }
2362
- async function fetch4(input, init2) {
2362
+ async function fetch3(input, init2) {
2363
2363
  const requestInit = init2;
2364
2364
  const request = new Request(input, requestInit);
2365
2365
  if (request.method === "GET" && request.headers.get("upgrade") === "websocket") {
@@ -2558,8 +2558,8 @@ function valueOrFile(value, filePath) {
2558
2558
  var import_os = require("os");
2559
2559
  function getAccessibleHosts(ipv4Only = false) {
2560
2560
  const hosts = [];
2561
- Object.values((0, import_os.networkInterfaces)()).forEach((net3) => {
2562
- net3?.forEach(({ family, address }) => {
2561
+ Object.values((0, import_os.networkInterfaces)()).forEach((net2) => {
2562
+ net2?.forEach(({ family, address }) => {
2563
2563
  if (family === "IPv4" || family === 4) {
2564
2564
  hosts.push(address);
2565
2565
  } else if (!ipv4Only) {
@@ -11884,7 +11884,6 @@ var CoreOptionsSchemaInput = import_zod12.z.intersection(
11884
11884
  rootPath: UnusableStringSchema.optional(),
11885
11885
  compatibilityDate: import_zod12.z.string().optional(),
11886
11886
  compatibilityFlags: import_zod12.z.string().array().optional(),
11887
- unsafeInspectorProxy: import_zod12.z.boolean().optional(),
11888
11887
  routes: import_zod12.z.string().array().optional(),
11889
11888
  bindings: import_zod12.z.record(JsonSchema).optional(),
11890
11889
  wasmBindings: import_zod12.z.record(import_zod12.z.union([PathSchema, import_zod12.z.instanceof(Uint8Array)])).optional(),
@@ -11917,7 +11916,7 @@ var CoreOptionsSchema = CoreOptionsSchemaInput.transform((value) => {
11917
11916
  );
11918
11917
  }
11919
11918
  value.fetchMock = void 0;
11920
- value.outboundService = (req) => fetch4(req, { dispatcher: fetchMock });
11919
+ value.outboundService = (req) => fetch3(req, { dispatcher: fetchMock });
11921
11920
  }
11922
11921
  return value;
11923
11922
  });
@@ -13851,415 +13850,6 @@ var PLUGINS = {
13851
13850
  };
13852
13851
  var PLUGIN_ENTRIES = Object.entries(PLUGINS);
13853
13852
 
13854
- // src/plugins/core/inspector-proxy/inspector-proxy-controller.ts
13855
- var import_node_crypto2 = __toESM(require("node:crypto"));
13856
- var import_node_http = require("node:http");
13857
-
13858
- // ../../node_modules/.pnpm/get-port@7.1.0/node_modules/get-port/index.js
13859
- var import_node_net = __toESM(require("node:net"), 1);
13860
- var import_node_os = __toESM(require("node:os"), 1);
13861
- var Locked = class extends Error {
13862
- constructor(port) {
13863
- super(`${port} is locked`);
13864
- }
13865
- };
13866
- var lockedPorts = {
13867
- old: /* @__PURE__ */ new Set(),
13868
- young: /* @__PURE__ */ new Set()
13869
- };
13870
- var releaseOldLockedPortsIntervalMs = 1e3 * 15;
13871
- var timeout;
13872
- var getLocalHosts = () => {
13873
- const interfaces = import_node_os.default.networkInterfaces();
13874
- const results = /* @__PURE__ */ new Set([void 0, "0.0.0.0"]);
13875
- for (const _interface of Object.values(interfaces)) {
13876
- for (const config of _interface) {
13877
- results.add(config.address);
13878
- }
13879
- }
13880
- return results;
13881
- };
13882
- var checkAvailablePort = (options) => new Promise((resolve2, reject) => {
13883
- const server = import_node_net.default.createServer();
13884
- server.unref();
13885
- server.on("error", reject);
13886
- server.listen(options, () => {
13887
- const { port } = server.address();
13888
- server.close(() => {
13889
- resolve2(port);
13890
- });
13891
- });
13892
- });
13893
- var getAvailablePort = async (options, hosts) => {
13894
- if (options.host || options.port === 0) {
13895
- return checkAvailablePort(options);
13896
- }
13897
- for (const host of hosts) {
13898
- try {
13899
- await checkAvailablePort({ port: options.port, host });
13900
- } catch (error) {
13901
- if (!["EADDRNOTAVAIL", "EINVAL"].includes(error.code)) {
13902
- throw error;
13903
- }
13904
- }
13905
- }
13906
- return options.port;
13907
- };
13908
- var portCheckSequence = function* (ports) {
13909
- if (ports) {
13910
- yield* ports;
13911
- }
13912
- yield 0;
13913
- };
13914
- async function getPorts(options) {
13915
- let ports;
13916
- let exclude = /* @__PURE__ */ new Set();
13917
- if (options) {
13918
- if (options.port) {
13919
- ports = typeof options.port === "number" ? [options.port] : options.port;
13920
- }
13921
- if (options.exclude) {
13922
- const excludeIterable = options.exclude;
13923
- if (typeof excludeIterable[Symbol.iterator] !== "function") {
13924
- throw new TypeError("The `exclude` option must be an iterable.");
13925
- }
13926
- for (const element of excludeIterable) {
13927
- if (typeof element !== "number") {
13928
- throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");
13929
- }
13930
- if (!Number.isSafeInteger(element)) {
13931
- throw new TypeError(`Number ${element} in the exclude option is not a safe integer and can't be used`);
13932
- }
13933
- }
13934
- exclude = new Set(excludeIterable);
13935
- }
13936
- }
13937
- if (timeout === void 0) {
13938
- timeout = setTimeout(() => {
13939
- timeout = void 0;
13940
- lockedPorts.old = lockedPorts.young;
13941
- lockedPorts.young = /* @__PURE__ */ new Set();
13942
- }, releaseOldLockedPortsIntervalMs);
13943
- if (timeout.unref) {
13944
- timeout.unref();
13945
- }
13946
- }
13947
- const hosts = getLocalHosts();
13948
- for (const port of portCheckSequence(ports)) {
13949
- try {
13950
- if (exclude.has(port)) {
13951
- continue;
13952
- }
13953
- let availablePort = await getAvailablePort({ ...options, port }, hosts);
13954
- while (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) {
13955
- if (port !== 0) {
13956
- throw new Locked(port);
13957
- }
13958
- availablePort = await getAvailablePort({ ...options, port }, hosts);
13959
- }
13960
- lockedPorts.young.add(availablePort);
13961
- return availablePort;
13962
- } catch (error) {
13963
- if (!["EADDRINUSE", "EACCES"].includes(error.code) && !(error instanceof Locked)) {
13964
- throw error;
13965
- }
13966
- }
13967
- }
13968
- throw new Error("No available ports found");
13969
- }
13970
-
13971
- // src/plugins/core/inspector-proxy/inspector-proxy-controller.ts
13972
- var import_ws4 = __toESM(require("ws"));
13973
-
13974
- // package.json
13975
- var version = "0.0.0-0435d8ef5";
13976
-
13977
- // src/plugins/core/inspector-proxy/inspector-proxy.ts
13978
- var import_node_assert4 = __toESM(require("node:assert"));
13979
- var import_ws3 = __toESM(require("ws"));
13980
-
13981
- // src/plugins/core/inspector-proxy/devtools.ts
13982
- function isDevToolsEvent(event, name) {
13983
- return typeof event === "object" && event !== null && "method" in event && event.method === name;
13984
- }
13985
-
13986
- // src/plugins/core/inspector-proxy/inspector-proxy.ts
13987
- var InspectorProxy = class {
13988
- #workerName;
13989
- #runtimeWs;
13990
- #devtoolsWs;
13991
- #devtoolsHaveFileSystemAccess = false;
13992
- constructor(workerName, runtimeWs) {
13993
- this.#workerName = workerName;
13994
- this.#runtimeWs = runtimeWs;
13995
- this.#runtimeWs.once("open", () => this.#handleRuntimeWebSocketOpen());
13996
- }
13997
- get workerName() {
13998
- return this.#workerName;
13999
- }
14000
- get path() {
14001
- return `/${this.#workerName}`;
14002
- }
14003
- onDevtoolsConnected(devtoolsWs, devtoolsHaveFileSystemAccess) {
14004
- if (this.#devtoolsWs) {
14005
- devtoolsWs.close(
14006
- 1013,
14007
- "Too many clients; only one can be connected at a time"
14008
- );
14009
- return;
14010
- }
14011
- this.#devtoolsWs = devtoolsWs;
14012
- this.#devtoolsHaveFileSystemAccess = devtoolsHaveFileSystemAccess;
14013
- (0, import_node_assert4.default)(this.#devtoolsWs?.readyState === import_ws3.default.OPEN);
14014
- this.#devtoolsWs.on("error", console.error);
14015
- this.#devtoolsWs.once("close", () => {
14016
- if (this.#runtimeWs?.OPEN) {
14017
- this.#sendMessageToRuntime({
14018
- method: "Debugger.disable",
14019
- id: this.#nextCounter()
14020
- });
14021
- }
14022
- this.#devtoolsWs = void 0;
14023
- });
14024
- this.#devtoolsWs.on("message", (data) => {
14025
- const message = JSON.parse(data.toString());
14026
- (0, import_node_assert4.default)(this.#runtimeWs?.OPEN);
14027
- this.#sendMessageToRuntime(message);
14028
- });
14029
- }
14030
- #runtimeMessageCounter = 1e8;
14031
- #nextCounter() {
14032
- return ++this.#runtimeMessageCounter;
14033
- }
14034
- #runtimeKeepAliveInterval;
14035
- #handleRuntimeWebSocketOpen() {
14036
- (0, import_node_assert4.default)(this.#runtimeWs?.OPEN);
14037
- this.#runtimeWs.on("message", (data) => {
14038
- const message = JSON.parse(data.toString());
14039
- if (!this.#devtoolsWs) {
14040
- return;
14041
- }
14042
- if (isDevToolsEvent(message, "Debugger.scriptParsed")) {
14043
- return this.#handleRuntimeScriptParsed(message);
14044
- }
14045
- return this.#sendMessageToDevtools(message);
14046
- });
14047
- clearInterval(this.#runtimeKeepAliveInterval);
14048
- this.#runtimeKeepAliveInterval = setInterval(() => {
14049
- if (this.#runtimeWs?.OPEN) {
14050
- this.#sendMessageToRuntime({
14051
- method: "Runtime.getIsolateId",
14052
- id: this.#nextCounter()
14053
- });
14054
- }
14055
- }, 1e4);
14056
- }
14057
- #handleRuntimeScriptParsed(message) {
14058
- if (!this.#devtoolsHaveFileSystemAccess && message.params.sourceMapURL !== void 0 && // Don't try to find a sourcemap for e.g. node-internal: scripts
14059
- message.params.url.startsWith("file:")) {
14060
- const url20 = new URL(message.params.sourceMapURL, message.params.url);
14061
- if (url20.protocol === "file:") {
14062
- message.params.sourceMapURL = url20.href.replace(
14063
- "file:",
14064
- "wrangler-file:"
14065
- );
14066
- }
14067
- }
14068
- return this.#sendMessageToDevtools(message);
14069
- }
14070
- #sendMessageToDevtools(message) {
14071
- (0, import_node_assert4.default)(this.#devtoolsWs);
14072
- if (!this.#devtoolsWs.OPEN) {
14073
- this.#devtoolsWs.once(
14074
- "open",
14075
- () => this.#devtoolsWs?.send(JSON.stringify(message))
14076
- );
14077
- return;
14078
- }
14079
- this.#devtoolsWs.send(JSON.stringify(message));
14080
- }
14081
- #sendMessageToRuntime(message) {
14082
- (0, import_node_assert4.default)(this.#runtimeWs?.OPEN);
14083
- this.#runtimeWs.send(JSON.stringify(message));
14084
- }
14085
- async dispose() {
14086
- clearInterval(this.#runtimeKeepAliveInterval);
14087
- this.#devtoolsWs?.close();
14088
- }
14089
- };
14090
-
14091
- // src/plugins/core/inspector-proxy/inspector-proxy-controller.ts
14092
- var InspectorProxyController = class {
14093
- constructor(userInspectorPort, log, workerNamesToProxy) {
14094
- this.log = log;
14095
- this.workerNamesToProxy = workerNamesToProxy;
14096
- this.#inspectorPort = userInspectorPort !== 0 ? userInspectorPort : getPorts();
14097
- this.#server = this.#initializeServer();
14098
- this.#runtimeConnectionEstablished = new DeferredPromise();
14099
- }
14100
- #runtimeConnectionEstablished;
14101
- #proxies = [];
14102
- #server;
14103
- #inspectorPort;
14104
- async #initializeServer() {
14105
- const server = (0, import_node_http.createServer)(async (req, res) => {
14106
- const maybeJson = await this.#handleDevToolsJsonRequest(
14107
- req.headers.host ?? "localhost",
14108
- req.url ?? "/"
14109
- );
14110
- if (maybeJson !== null) {
14111
- res.setHeader("Content-Type", "application/json");
14112
- res.end(JSON.stringify(maybeJson));
14113
- return;
14114
- }
14115
- res.statusCode = 404;
14116
- res.end(null);
14117
- });
14118
- this.#initializeWebSocketServer(server);
14119
- server.listen(await this.#inspectorPort);
14120
- return server;
14121
- }
14122
- #initializeWebSocketServer(server) {
14123
- const devtoolsWebSocketServer = new import_ws4.WebSocketServer({ server });
14124
- devtoolsWebSocketServer.on("connection", (devtoolsWs, upgradeRequest) => {
14125
- const validationError = this.#validateDevToolsWebSocketUpgradeRequest(upgradeRequest);
14126
- if (validationError !== null) {
14127
- devtoolsWs.close();
14128
- return;
14129
- }
14130
- const proxy = this.#proxies.find(
14131
- ({ path: path30 }) => upgradeRequest.url === path30
14132
- );
14133
- if (!proxy) {
14134
- this.log.warn(
14135
- `Warning: An inspector connection was requested for the ${upgradeRequest.url} path but no such inspector exists`
14136
- );
14137
- devtoolsWs.close();
14138
- return;
14139
- }
14140
- proxy.onDevtoolsConnected(
14141
- devtoolsWs,
14142
- this.#checkIfDevtoolsHaveFileSystemAccess(upgradeRequest)
14143
- );
14144
- });
14145
- }
14146
- #validateDevToolsWebSocketUpgradeRequest(req) {
14147
- const hostHeader = req.headers.host;
14148
- if (hostHeader == null) return { statusText: null, status: 400 };
14149
- try {
14150
- const host = new URL(`http://${hostHeader}`);
14151
- if (!ALLOWED_HOST_HOSTNAMES.includes(host.hostname)) {
14152
- return { statusText: "Disallowed `Host` header", status: 401 };
14153
- }
14154
- } catch {
14155
- return { statusText: "Expected `Host` header", status: 400 };
14156
- }
14157
- let originHeader = req.headers.origin;
14158
- if (!originHeader && !req.headers["user-agent"]) {
14159
- originHeader = "http://localhost";
14160
- }
14161
- if (!originHeader) {
14162
- return { statusText: "Expected `Origin` header", status: 400 };
14163
- }
14164
- try {
14165
- const origin = new URL(originHeader);
14166
- const allowed = ALLOWED_ORIGIN_HOSTNAMES.some((rule) => {
14167
- if (typeof rule === "string") return origin.hostname === rule;
14168
- else return rule.test(origin.hostname);
14169
- });
14170
- if (!allowed) {
14171
- return { statusText: "Disallowed `Origin` header", status: 401 };
14172
- }
14173
- } catch {
14174
- return { statusText: "Expected `Origin` header", status: 400 };
14175
- }
14176
- return null;
14177
- }
14178
- #checkIfDevtoolsHaveFileSystemAccess(req) {
14179
- const userAgent = req.headers["user-agent"] ?? "";
14180
- const hasFileSystemAccess = !/mozilla/i.test(userAgent);
14181
- return hasFileSystemAccess;
14182
- }
14183
- #inspectorId = import_node_crypto2.default.randomUUID();
14184
- async #handleDevToolsJsonRequest(host, path30) {
14185
- if (path30 === "/json/version") {
14186
- return {
14187
- Browser: `miniflare/v${version}`,
14188
- // TODO: (someday): The DevTools protocol should match that of workerd.
14189
- // This could be exposed by the preview API.
14190
- "Protocol-Version": "1.3"
14191
- };
14192
- }
14193
- if (path30 === "/json" || path30 === "/json/list") {
14194
- return this.#proxies.map(({ workerName }) => {
14195
- const localHost = `${host}/${workerName}`;
14196
- const devtoolsFrontendUrl = `https://devtools.devprod.cloudflare.dev/js_app?theme=systemPreferred&debugger=true&ws=${localHost}`;
14197
- return {
14198
- id: `${this.#inspectorId}-${workerName}`,
14199
- type: "node",
14200
- // TODO: can we specify different type?
14201
- description: "workers",
14202
- webSocketDebuggerUrl: `ws://${localHost}`,
14203
- devtoolsFrontendUrl,
14204
- devtoolsFrontendUrlCompat: devtoolsFrontendUrl,
14205
- // Below are fields that are visible in the DevTools UI.
14206
- title: workerName.length === 0 || this.#proxies.length === 1 ? `Cloudflare Worker` : `Cloudflare Worker: ${workerName}`,
14207
- faviconUrl: "https://workers.cloudflare.com/favicon.ico"
14208
- // url: "http://" + localHost, // looks unnecessary
14209
- };
14210
- });
14211
- }
14212
- return null;
14213
- }
14214
- async getInspectorURL() {
14215
- return getWebsocketURL(await this.#inspectorPort);
14216
- }
14217
- async updateConnection(runtimeInspectorPort) {
14218
- const workerdInspectorJson = await fetch(
14219
- `http://127.0.0.1:${runtimeInspectorPort}/json`
14220
- ).then((resp) => resp.json());
14221
- this.#proxies = workerdInspectorJson.map(({ id }) => {
14222
- if (!id.startsWith("core:user:")) {
14223
- return;
14224
- }
14225
- const workerName = id.replace(/^core:user:/, "");
14226
- if (!this.workerNamesToProxy.has(workerName)) {
14227
- return;
14228
- }
14229
- return new InspectorProxy(
14230
- workerName,
14231
- new import_ws4.default(`ws://127.0.0.1:${runtimeInspectorPort}/${id}`)
14232
- );
14233
- }).filter(Boolean);
14234
- this.#runtimeConnectionEstablished.resolve();
14235
- }
14236
- async #waitForReady() {
14237
- await this.#runtimeConnectionEstablished;
14238
- }
14239
- get ready() {
14240
- return this.#waitForReady();
14241
- }
14242
- async dispose() {
14243
- await Promise.all(this.#proxies.map((proxy) => proxy.dispose()));
14244
- const server = await this.#server;
14245
- return new Promise((resolve2, reject) => {
14246
- server.close((err) => err ? reject(err) : resolve2());
14247
- });
14248
- }
14249
- };
14250
- function getWebsocketURL(port) {
14251
- return new URL(`ws://127.0.0.1:${port}`);
14252
- }
14253
- var ALLOWED_HOST_HOSTNAMES = ["127.0.0.1", "[::1]", "localhost"];
14254
- var ALLOWED_ORIGIN_HOSTNAMES = [
14255
- "devtools.devprod.cloudflare.dev",
14256
- "cloudflare-devtools.pages.dev",
14257
- /^[a-z0-9]+\.cloudflare-devtools\.pages\.dev$/,
14258
- "127.0.0.1",
14259
- "[::1]",
14260
- "localhost"
14261
- ];
14262
-
14263
13853
  // src/shared/mime-types.ts
14264
13854
  var compressedByCloudflareFL = /* @__PURE__ */ new Set([
14265
13855
  // list copied from https://developers.cloudflare.com/speed/optimization/content/brotli/content-compression/#:~:text=If%20supported%20by%20visitors%E2%80%99%20web%20browsers%2C%20Cloudflare%20will%20return%20Gzip%20or%20Brotli%2Dencoded%20responses%20for%20the%20following%20content%20types%3A
@@ -14999,45 +14589,18 @@ var Miniflare2 = class _Miniflare {
14999
14589
  #liveReloadServer;
15000
14590
  #webSocketServer;
15001
14591
  #webSocketExtraHeaders;
15002
- #maybeInspectorProxyController;
15003
- #previousRuntimeInspectorPort;
15004
14592
  constructor(opts) {
15005
14593
  const [sharedOpts, workerOpts] = validateOptions(opts);
15006
14594
  this.#sharedOpts = sharedOpts;
15007
14595
  this.#workerOpts = workerOpts;
15008
- const workerNamesToProxy = new Set(
15009
- this.#workerOpts.filter(({ core: { unsafeInspectorProxy } }) => !!unsafeInspectorProxy).map((w) => w.core.name ?? "")
15010
- );
15011
- const enableInspectorProxy = workerNamesToProxy.size > 0;
15012
- if (enableInspectorProxy) {
15013
- if (this.#sharedOpts.core.inspectorPort === void 0) {
15014
- throw new MiniflareCoreError(
15015
- "ERR_MISSING_INSPECTOR_PROXY_PORT",
15016
- "inspector proxy requested but without an inspectorPort specified"
15017
- );
15018
- }
15019
- }
15020
14596
  if (maybeInstanceRegistry !== void 0) {
15021
14597
  const object = { name: "Miniflare", stack: "" };
15022
14598
  Error.captureStackTrace(object, _Miniflare);
15023
14599
  maybeInstanceRegistry.set(this, object.stack);
15024
14600
  }
15025
14601
  this.#log = this.#sharedOpts.core.log ?? new NoOpLog();
15026
- if (enableInspectorProxy) {
15027
- if (this.#sharedOpts.core.inspectorPort === void 0) {
15028
- throw new MiniflareCoreError(
15029
- "ERR_MISSING_INSPECTOR_PROXY_PORT",
15030
- "inspector proxy requested but without an inspectorPort specified"
15031
- );
15032
- }
15033
- this.#maybeInspectorProxyController = new InspectorProxyController(
15034
- this.#sharedOpts.core.inspectorPort,
15035
- this.#log,
15036
- workerNamesToProxy
15037
- );
15038
- }
15039
- this.#liveReloadServer = new import_ws5.WebSocketServer({ noServer: true });
15040
- this.#webSocketServer = new import_ws5.WebSocketServer({
14602
+ this.#liveReloadServer = new import_ws3.WebSocketServer({ noServer: true });
14603
+ this.#webSocketServer = new import_ws3.WebSocketServer({
15041
14604
  noServer: true,
15042
14605
  // Disable automatic handling of `Sec-WebSocket-Protocol` header,
15043
14606
  // Cloudflare Workers require users to include this header themselves in
@@ -15497,19 +15060,14 @@ var Miniflare2 = class _Miniflare {
15497
15060
  configuredHost,
15498
15061
  this.#sharedOpts.core.port
15499
15062
  );
15500
- let runtimeInspectorAddress;
15063
+ let inspectorAddress;
15501
15064
  if (this.#sharedOpts.core.inspectorPort !== void 0) {
15502
- let runtimeInspectorPort = this.#sharedOpts.core.inspectorPort;
15503
- if (this.#maybeInspectorProxyController !== void 0) {
15504
- runtimeInspectorPort = 0;
15505
- }
15506
- runtimeInspectorAddress = this.#getSocketAddress(
15065
+ inspectorAddress = this.#getSocketAddress(
15507
15066
  kInspectorSocket,
15508
- this.#previousRuntimeInspectorPort,
15067
+ this.#previousSharedOpts?.core.inspectorPort,
15509
15068
  "localhost",
15510
- runtimeInspectorPort
15069
+ this.#sharedOpts.core.inspectorPort
15511
15070
  );
15512
- this.#previousRuntimeInspectorPort = runtimeInspectorPort;
15513
15071
  }
15514
15072
  const loopbackAddress = `${maybeGetLocallyAccessibleHost(configuredHost) ?? getURLSafeHost(configuredHost)}:${loopbackPort}`;
15515
15073
  const runtimeOpts = {
@@ -15517,7 +15075,7 @@ var Miniflare2 = class _Miniflare {
15517
15075
  entryAddress,
15518
15076
  loopbackAddress,
15519
15077
  requiredSockets,
15520
- inspectorAddress: runtimeInspectorAddress,
15078
+ inspectorAddress,
15521
15079
  verbose: this.#sharedOpts.core.verbose,
15522
15080
  handleRuntimeStdio: this.#sharedOpts.core.handleRuntimeStdio
15523
15081
  };
@@ -15533,17 +15091,6 @@ var Miniflare2 = class _Miniflare {
15533
15091
  );
15534
15092
  }
15535
15093
  this.#socketPorts = maybeSocketPorts;
15536
- if (this.#maybeInspectorProxyController !== void 0) {
15537
- const maybePort = this.#socketPorts.get(kInspectorSocket);
15538
- if (maybePort === void 0) {
15539
- throw new MiniflareCoreError(
15540
- "ERR_RUNTIME_FAILURE",
15541
- "Unable to access the runtime inspector socket."
15542
- );
15543
- } else {
15544
- this.#maybeInspectorProxyController.updateConnection(maybePort);
15545
- }
15546
- }
15547
15094
  const entrySocket = config.sockets?.[0];
15548
15095
  const secure = entrySocket !== void 0 && "https" in entrySocket;
15549
15096
  const previousEntryURL = this.#runtimeEntryURL;
@@ -15598,7 +15145,6 @@ var Miniflare2 = class _Miniflare {
15598
15145
  await this.#initPromise;
15599
15146
  await this.#runtimeMutex.drained();
15600
15147
  if (disposing) return new URL("http://[100::]/");
15601
- await this.#maybeInspectorProxyController?.ready;
15602
15148
  this.#checkDisposed();
15603
15149
  (0, import_assert12.default)(this.#runtimeEntryURL !== void 0);
15604
15150
  return new URL(this.#runtimeEntryURL.toString());
@@ -15614,9 +15160,6 @@ var Miniflare2 = class _Miniflare {
15614
15160
  async getInspectorURL() {
15615
15161
  this.#checkDisposed();
15616
15162
  await this.ready;
15617
- if (this.#maybeInspectorProxyController !== void 0) {
15618
- return this.#maybeInspectorProxyController.getInspectorURL();
15619
- }
15620
15163
  (0, import_assert12.default)(this.#socketPorts !== void 0);
15621
15164
  const maybePort = this.#socketPorts.get(kInspectorSocket);
15622
15165
  if (maybePort === void 0) {
@@ -15695,7 +15238,7 @@ var Miniflare2 = class _Miniflare {
15695
15238
  );
15696
15239
  const forwardInit = forward;
15697
15240
  forwardInit.dispatcher = dispatcher;
15698
- const response = await fetch4(url20, forwardInit);
15241
+ const response = await fetch3(url20, forwardInit);
15699
15242
  const stack = response.headers.get(CoreHeaders.ERROR_STACK);
15700
15243
  if (response.status === 500 && stack !== null) {
15701
15244
  const caught = JsonErrorSchema.parse(await response.json());
@@ -15844,7 +15387,6 @@ var Miniflare2 = class _Miniflare {
15844
15387
  await this.#runtime?.dispose();
15845
15388
  await this.#stopLoopbackServer();
15846
15389
  await import_fs24.default.promises.rm(this.#tmpPath, { force: true, recursive: true });
15847
- await this.#maybeInspectorProxyController?.dispose();
15848
15390
  maybeInstanceRegistry?.delete(this);
15849
15391
  }
15850
15392
  }