@ai-ecoverse/slicc-kernel 1.103.0 → 1.103.2

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/node.js CHANGED
@@ -1549,6 +1549,7 @@ var KernelSocket = class _KernelSocket {
1549
1549
  queue = [];
1550
1550
  backlog = 0;
1551
1551
  boundAt;
1552
+ named;
1552
1553
  changes = new Changes();
1553
1554
  room = new Changes();
1554
1555
  options = /* @__PURE__ */ new Map();
@@ -1614,10 +1615,13 @@ var KernelSocket = class _KernelSocket {
1614
1615
  for (const wait2 of waits) wait2.catch(() => void 0);
1615
1616
  return pipeCall(() => Promise.race(waits));
1616
1617
  }
1617
- bind(addr, kernel = false) {
1618
+ bindable(addr) {
1618
1619
  if (this.state !== "open" || this.local) throw new KernelError("EINVAL");
1619
1620
  if (addr.family !== this.domain) throw new KernelError("EAFNOSUPPORT");
1620
- this.local = this.net.bind(this, addr, kernel);
1621
+ }
1622
+ bind(addr, kernel = false, name2) {
1623
+ this.bindable(addr);
1624
+ this.local = this.net.bind(this, addr, kernel, name2);
1621
1625
  this.boundAt = this.local;
1622
1626
  }
1623
1627
  listen(backlog, cred) {
@@ -1655,7 +1659,7 @@ var KernelSocket = class _KernelSocket {
1655
1659
  waitRoom(signal) {
1656
1660
  return this.room.wait(signal);
1657
1661
  }
1658
- connect(addr, viaUplink = true, cred, stamp, waits = true) {
1662
+ connect(addr, viaUplink = true, cred, stamp, waits = true, name2) {
1659
1663
  if (this.state === "connected") throw new KernelError("EISCONN");
1660
1664
  if (this.state === "connecting") throw new KernelError("EALREADY");
1661
1665
  if (this.state !== "open") throw new KernelError("EINVAL");
@@ -1663,7 +1667,7 @@ var KernelSocket = class _KernelSocket {
1663
1667
  this.failed = void 0;
1664
1668
  const route = viaUplink && addr.family === "inet" ? this.net.uplinkFor(addr.host) : void 0;
1665
1669
  if (route) return this.dial(addr, route);
1666
- const target = this.net.target(addr);
1670
+ const target = this.net.target(addr, name2);
1667
1671
  if (!this.local) {
1668
1672
  if (addr.family === "inet") {
1669
1673
  this.local = this.net.bind(this, { family: "inet", host: "127.0.0.1", port: 0 });
@@ -1824,7 +1828,7 @@ var KernelSocket = class _KernelSocket {
1824
1828
  this.readShut = true;
1825
1829
  this.writeShut = true;
1826
1830
  }
1827
- if (this.boundAt) this.net.release(this.boundAt, this);
1831
+ if (this.boundAt) this.net.release(this.boundAt, this, this.named);
1828
1832
  this.boundAt = void 0;
1829
1833
  this.changes.wake();
1830
1834
  }
@@ -1841,7 +1845,8 @@ var KernelSocket = class _KernelSocket {
1841
1845
  function canonicalHost(host) {
1842
1846
  return host === "0.0.0.0" ? "127.0.0.1" : host;
1843
1847
  }
1844
- function keyOf(addr) {
1848
+ function keyOf(addr, name2) {
1849
+ if (name2) return `node:${name2.key}`;
1845
1850
  return addr.family === "inet" ? `inet:${addr.port}` : `unix:${addr.path}`;
1846
1851
  }
1847
1852
  var LOCAL_ONLY = new Routes();
@@ -1920,28 +1925,30 @@ var LoopbackNet = class {
1920
1925
  void socket.connect(addr, false, void 0, void 0, false);
1921
1926
  return socket;
1922
1927
  }
1923
- bind(socket, addr, kernel = false) {
1928
+ bind(socket, addr, kernel = false, name2) {
1924
1929
  if (addr.family === "unix") {
1925
1930
  if (addr.path === "") throw new KernelError("EINVAL");
1926
1931
  } else this.bindable(addr, kernel);
1927
1932
  const named = addr.family === "inet" && addr.port === 0 ? { ...addr, port: this.ephemeral() } : addr;
1928
- const key = keyOf(named);
1929
- if (this.bound.has(key)) throw new KernelError("EADDRINUSE");
1933
+ const key = keyOf(named, name2);
1934
+ if (this.bound.has(key) && !name2) throw new KernelError("EADDRINUSE");
1930
1935
  this.bound.set(key, socket);
1936
+ socket.named = name2;
1931
1937
  return named;
1932
1938
  }
1933
- release(addr, socket) {
1934
- const key = keyOf(addr);
1939
+ release(addr, socket, name2) {
1940
+ const key = keyOf(addr, name2);
1935
1941
  if (this.bound.get(key) === socket) this.bound.delete(key);
1936
1942
  }
1937
- target(addr) {
1943
+ target(addr, name2) {
1938
1944
  if (addr.family === "inet" && !isLoopback(canonicalHost(addr.host))) {
1939
1945
  throw new KernelError("ENETUNREACH");
1940
1946
  }
1941
- const key = keyOf(addr);
1947
+ const key = keyOf(addr, name2);
1942
1948
  if (!this.bound.has(key)) this.activators.get(key)?.();
1943
1949
  const socket = this.bound.get(key);
1944
1950
  if (!socket?.listening) throw new KernelError("ECONNREFUSED");
1951
+ if (name2 && socket.named?.typed && !name2.typed) throw new KernelError("ECONNREFUSED");
1945
1952
  return socket;
1946
1953
  }
1947
1954
  ephemeral() {
@@ -4016,6 +4023,7 @@ function view(target, overrides) {
4016
4023
  var S_IFDIR = 16384;
4017
4024
  var S_IFREG = 32768;
4018
4025
  var S_IFLNK = 40960;
4026
+ var S_IFSOCK = 49152;
4019
4027
  var PERM_MASK = 4095;
4020
4028
  var S_ISGID3 = 1024;
4021
4029
  var READ_ATTEMPTS = 3;
@@ -4279,7 +4287,8 @@ var OpfsFs = class {
4279
4287
  return Object.keys(fields).length > 0 ? fields : void 0;
4280
4288
  }
4281
4289
  async stampNew(path, owner, directory) {
4282
- const fields = await this.newFields(path, owner, directory);
4290
+ const owned4 = await this.newFields(path, owner, directory);
4291
+ const fields = owner?.socket && !directory ? { ...owned4, socket: true } : owned4;
4283
4292
  if (fields) await this.meta.update(path, (entry) => ({ ...entry, path, ...fields }));
4284
4293
  }
4285
4294
  guarded = [];
@@ -4479,7 +4488,8 @@ var OpfsFs = class {
4479
4488
  }
4480
4489
  mode(path, directory, meta) {
4481
4490
  const fallback = directory || EXECUTABLE.test(path) ? 493 : 420;
4482
- return (directory ? S_IFDIR : S_IFREG) | (meta?.mode ?? fallback);
4491
+ const type = directory ? S_IFDIR : meta?.socket ? S_IFSOCK : S_IFREG;
4492
+ return type | (meta?.mode ?? fallback);
4483
4493
  }
4484
4494
  id = crypto.randomUUID();
4485
4495
  dirTimes = /* @__PURE__ */ new Map();
@@ -4558,10 +4568,12 @@ var OpfsFs = class {
4558
4568
  const modified = file?.lastModified ?? 0;
4559
4569
  const kept = meta?.mtimeMs !== void 0 && meta.mtimeFor === modified ? meta.mtimeMs : modified;
4560
4570
  const mtime = touched ?? kept;
4571
+ const socket = !directory && meta?.socket === true;
4561
4572
  return {
4562
- isFile: !directory,
4573
+ isFile: !directory && !socket,
4563
4574
  isDirectory: directory,
4564
4575
  isSymbolicLink: false,
4576
+ ...socket ? { isSocket: true } : {},
4565
4577
  size: file?.size ?? 0,
4566
4578
  mode: this.mode(path, directory, meta),
4567
4579
  mtime: new Date(mtime),
@@ -9793,6 +9805,7 @@ function statJson(s) {
9793
9805
  isDirectory: s.isDirectory,
9794
9806
  isFile: s.isFile,
9795
9807
  isSymbolicLink: s.isSymbolicLink,
9808
+ ...s.isSocket ? { isSocket: true } : {},
9796
9809
  size: s.size,
9797
9810
  mode: s.mode,
9798
9811
  mtimeMs: s.mtime.getTime(),
@@ -11177,7 +11190,7 @@ var PATH_OPS = new Set(SYNC_FS_OPS);
11177
11190
  var EARLY_WHOLE_FILE = 64 * 1024;
11178
11191
 
11179
11192
  // src/version.ts
11180
- var KERNEL_VERSION = true ? "1.103.0" : "0.0.0-dev";
11193
+ var KERNEL_VERSION = true ? "1.103.2" : "0.0.0-dev";
11181
11194
  var OS_RELEASE = "6.0.0-slicc";
11182
11195
  function procVersion() {
11183
11196
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -14261,6 +14274,7 @@ async function runChild(req, deps) {
14261
14274
  ...req.argv0 !== void 0 ? { argv0: req.argv0 } : {},
14262
14275
  env: req.env,
14263
14276
  cwd: req.cwd,
14277
+ ...req.chdir ? { chdir: req.chdir } : {},
14264
14278
  ...req.pgid !== void 0 ? { pgid: req.pgid } : {},
14265
14279
  ...req.session ? { session: req.session } : {}
14266
14280
  },
@@ -14546,6 +14560,47 @@ async function semSyscall(req, proc) {
14546
14560
  }
14547
14561
  }
14548
14562
 
14563
+ // src/kernel/socket-nodes.ts
14564
+ function filePath(addr) {
14565
+ if (addr.family !== "unix" || addr.path === "" || addr.path.startsWith("\0")) return void 0;
14566
+ return normalizePath(addr.path);
14567
+ }
14568
+ function nameOf(st) {
14569
+ return { key: `${st.dev ?? 0}:${st.ino}`, typed: st.isSocket === true };
14570
+ }
14571
+ function codeOf3(err) {
14572
+ return err?.code;
14573
+ }
14574
+ function socketNames(deps) {
14575
+ const { fs } = deps;
14576
+ return {
14577
+ async make(path) {
14578
+ const g = deps.guard();
14579
+ if (g) await inParent(g, "bind", path);
14580
+ const owner = deps.owner();
14581
+ try {
14582
+ await deps.create(path, owner);
14583
+ } catch (err) {
14584
+ if (codeOf3(err) === "EEXIST") throw new KernelError("EADDRINUSE");
14585
+ throw err;
14586
+ }
14587
+ const remove = () => fs.rm(path, { file: true }).catch(() => void 0);
14588
+ try {
14589
+ if (!deps.owners && owner.mode !== void 0) await fs.chmod(path, owner.mode);
14590
+ return { ...nameOf(await fs.lstat(path)), remove };
14591
+ } catch (err) {
14592
+ await remove();
14593
+ throw err;
14594
+ }
14595
+ },
14596
+ async find(path) {
14597
+ const g = deps.guard();
14598
+ if (g) await need(g, "connect", path, W_OK, { directory: false });
14599
+ return nameOf(await fs.stat(path));
14600
+ }
14601
+ };
14602
+ }
14603
+
14549
14604
  // src/kernel/net/datagram-wire.ts
14550
14605
  function encodeReceived(got) {
14551
14606
  const host = new TextEncoder().encode(got.host);
@@ -14612,7 +14667,7 @@ async function socketSyscall(req, proc) {
14612
14667
  }
14613
14668
  }
14614
14669
  case "sock-bind":
14615
- anySocketAt(fds, req.fd).bind(req.addr);
14670
+ await bind(proc, req.fd, req.addr);
14616
14671
  return ok3();
14617
14672
  case "sock-listen":
14618
14673
  socketAt(fds, req.fd).listen(req.backlog, proc.cred?.());
@@ -14650,8 +14705,10 @@ async function connect(req, proc) {
14650
14705
  target.connectTo(req.addr);
14651
14706
  return ok3();
14652
14707
  }
14708
+ const path = filePath(req.addr);
14709
+ const name2 = path !== void 0 ? await proc.names?.find(path) : void 0;
14653
14710
  const stamp = proc.net.facadeAt(req.addr) && await proc.stamp?.();
14654
- const dialing = target.connect(req.addr, true, proc.cred?.(), stamp || void 0);
14711
+ const dialing = target.connect(req.addr, true, proc.cred?.(), stamp || void 0, true, name2);
14655
14712
  if (req.nonblock) {
14656
14713
  dialing?.catch(() => void 0);
14657
14714
  throw new KernelError("EINPROGRESS");
@@ -14659,6 +14716,22 @@ async function connect(req, proc) {
14659
14716
  if (dialing !== void 0) await interruptible2(dialing, proc.blocking());
14660
14717
  return ok3();
14661
14718
  }
14719
+ async function bind(proc, fd, addr) {
14720
+ const socket = anySocketAt(proc.fds, fd);
14721
+ const path = filePath(addr);
14722
+ if (!(socket instanceof KernelSocket) || path === void 0 || !proc.names) {
14723
+ socket.bind(addr);
14724
+ return;
14725
+ }
14726
+ socket.bindable(addr);
14727
+ const name2 = await proc.names.make(path);
14728
+ try {
14729
+ socket.bind({ family: "unix", path }, false, name2);
14730
+ } catch (err) {
14731
+ await name2.remove();
14732
+ throw err;
14733
+ }
14734
+ }
14662
14735
  async function datagram(req, proc) {
14663
14736
  const dgram = dgramAt(proc.fds, req.fd);
14664
14737
  if (req.op === "sock-sendto") {
@@ -15266,6 +15339,11 @@ function heldIo(fs, nodes, changed) {
15266
15339
  const held = st.isFile ? await node(path) : void 0;
15267
15340
  return held ? { ...st, size: await held.serial(() => held.size()) } : st;
15268
15341
  },
15342
+ async lstat(path) {
15343
+ const st = await fs.lstat(path);
15344
+ const held = st.isFile && !st.isSymbolicLink ? await node(path) : void 0;
15345
+ return held ? { ...st, size: await held.serial(() => held.size()) } : st;
15346
+ },
15269
15347
  async readFileBuffer(path) {
15270
15348
  const held = await node(path);
15271
15349
  if (!held) return fs.readFileBuffer(path);
@@ -15679,13 +15757,23 @@ var WasmProcess = class {
15679
15757
  return "deliver";
15680
15758
  }
15681
15759
  async spawn(req) {
15682
- const { file, argv, argv0, env, cwd, stdio, inherit: inherit2, exec, pgid, session, deathSignal } = req;
15760
+ const { file, argv, argv0, env, cwd, chdir, stdio, inherit: inherit2, exec, pgid, session, deathSignal } = req;
15683
15761
  if (deathSignal !== void 0 && (exec || !isSignal(deathSignal))) {
15684
15762
  throw new KernelError("EINVAL");
15685
15763
  }
15686
15764
  const group = { ...pgid !== void 0 ? { pgid } : {}, ...session ? { session } : {} };
15687
15765
  const named = argv0 !== void 0 ? { argv0 } : {};
15688
- const spawned = { file, argv, ...named, env, cwd, ...group, ...exec ? { exec } : {} };
15766
+ const moved2 = chdir ? { chdir } : {};
15767
+ const spawned = {
15768
+ file,
15769
+ argv,
15770
+ ...named,
15771
+ env,
15772
+ cwd,
15773
+ ...moved2,
15774
+ ...group,
15775
+ ...exec ? { exec } : {}
15776
+ };
15689
15777
  const pid = await this.children.spawn(spawned, stdio, inherit2);
15690
15778
  if (deathSignal !== void 0) this.onDeath(pgid === 0 || session ? -pid : pid, deathSignal);
15691
15779
  if (!exec) return pid;
@@ -16552,7 +16640,19 @@ var WasmProcess = class {
16552
16640
  blocking: () => this.blockingSignal(cancelled),
16553
16641
  resolve: (name2, family, blocking) => resolver.resolve(name2, family, blocking),
16554
16642
  cred: () => ({ pid: this.pid, uid: this.cred.euid, gid: this.cred.egid }),
16555
- stamp: () => this.connectorStamp()
16643
+ stamp: () => this.connectorStamp(),
16644
+ names: socketNames({
16645
+ fs: this.heldFs(),
16646
+ guard: () => this.guarded(),
16647
+ create: (path, owner) => this.nodes.createExclusive(path, owner),
16648
+ owner: () => ({
16649
+ uid: this.cred.euid,
16650
+ gid: this.cred.egid,
16651
+ mode: 511 & ~this.umask,
16652
+ socket: true
16653
+ }),
16654
+ owners: this.options.owners === true
16655
+ })
16556
16656
  });
16557
16657
  }
16558
16658
  tty(fd) {
@@ -18626,8 +18726,8 @@ var FSA_CAPABILITIES = {
18626
18726
  ranges: true,
18627
18727
  sessions: true
18628
18728
  };
18629
- var codeOf3 = (err) => err?.code;
18630
- var denied = (err) => codeOf3(err) === "EACCES" || err?.name === "NotAllowedError";
18729
+ var codeOf4 = (err) => err?.code;
18730
+ var denied = (err) => codeOf4(err) === "EACCES" || err?.name === "NotAllowedError";
18631
18731
  function attrOf(st) {
18632
18732
  return {
18633
18733
  kind: st.isDirectory ? "directory" : st.isSymbolicLink ? "symlink" : "file",
@@ -18649,7 +18749,7 @@ function kernelFsHandlers(fs) {
18649
18749
  try {
18650
18750
  return await fs.stat(path);
18651
18751
  } catch (err) {
18652
- if (codeOf3(err) === "ENOENT") return void 0;
18752
+ if (codeOf4(err) === "ENOENT") return void 0;
18653
18753
  throw err;
18654
18754
  }
18655
18755
  }
@@ -18842,7 +18942,7 @@ function parseFstab(text) {
18842
18942
  });
18843
18943
  return lines2;
18844
18944
  }
18845
- function codeOf4(err) {
18945
+ function codeOf5(err) {
18846
18946
  const code = err?.code;
18847
18947
  return typeof code === "string" ? code : "EIO";
18848
18948
  }
@@ -18880,18 +18980,18 @@ async function mountLine({ line, spec, invalid }, mount, signal, retries, discar
18880
18980
  break;
18881
18981
  } catch (err) {
18882
18982
  failed3 = err;
18883
- if (FINAL.has(codeOf4(err)) || attempt === retries.length) break;
18983
+ if (FINAL.has(codeOf5(err)) || attempt === retries.length) break;
18884
18984
  await wait(retries[attempt], signal);
18885
18985
  }
18886
18986
  }
18887
- const code = codeOf4(failed3);
18987
+ const code = codeOf5(failed3);
18888
18988
  return { line, target: spec.target, code, error: String(failed3?.message ?? code) };
18889
18989
  }
18890
18990
 
18891
18991
  // src/mount/hostfs.ts
18892
18992
  var HOSTFS_IO = 16 * 1024 * 1024;
18893
- var codeOf5 = (err) => err?.code;
18894
- var unreachable = (err) => codeOf5(err) === "ENOTCONN";
18993
+ var codeOf6 = (err) => err?.code;
18994
+ var unreachable = (err) => codeOf6(err) === "ENOTCONN";
18895
18995
  function rel(path) {
18896
18996
  return path.replace(/^\/+/, "");
18897
18997
  }
@@ -19068,7 +19168,7 @@ function hostfsHandlers(current, againMs = RESTORE_AGAIN_MS) {
19068
19168
  try {
19069
19169
  return { opened: await opening2(), restore: void 0 };
19070
19170
  } catch (err) {
19071
- if (!flags2.write || codeOf5(err) !== "EACCES") throw err;
19171
+ if (!flags2.write || codeOf6(err) !== "EACCES") throw err;
19072
19172
  const was = await client.call("stat", { path: rel(path) });
19073
19173
  const mode = was.mode ?? 0;
19074
19174
  if (mode & 128) throw err;
@@ -19493,7 +19593,7 @@ var PortTransport = class {
19493
19593
  }
19494
19594
  };
19495
19595
  var errorOf = (err) => ({
19496
- code: typeof codeOf5(err) === "string" ? codeOf5(err) : "EIO",
19596
+ code: typeof codeOf6(err) === "string" ? codeOf6(err) : "EIO",
19497
19597
  message: err?.message ?? String(err)
19498
19598
  });
19499
19599
  function serveHostfsPort(port, transport) {
@@ -21192,6 +21292,13 @@ var Launcher = class {
21192
21292
  await fds.closeAll();
21193
21293
  throw new SpawnError(await this.unrunnable(file, req.cwd, scope));
21194
21294
  }
21295
+ async enterable(g, cwd) {
21296
+ if (!g) return;
21297
+ const denied2 = new Error(`cannot change to ${cwd}: Permission denied`);
21298
+ await need(g, "chdir", cwd, X_OK, { directory: true }).catch((err) => {
21299
+ throw err.code === "EACCES" ? Object.assign(denied2, { code: "EACCES" }) : err;
21300
+ });
21301
+ }
21195
21302
  execGuard(cred, pid, tag) {
21196
21303
  const { dac } = this;
21197
21304
  return dac && { fs: this.fs, cred, pid, dac, tag, links: this.links.get(pid) };
@@ -21808,6 +21915,13 @@ var Launcher = class {
21808
21915
  throw new SpawnError(group);
21809
21916
  }
21810
21917
  const cred = grant ? grant.cred : this.credOf(ppid);
21918
+ if (req.chdir && !grant) {
21919
+ const g = this.execGuard(cred, ppid);
21920
+ await this.enterable(g, req.cwd).catch(async (err) => {
21921
+ await fds.closeAll();
21922
+ throw err.code === "EACCES" ? new SpawnError("EACCES") : err;
21923
+ });
21924
+ }
21811
21925
  const scope = grant ? "" : await this.scopeOf(cred.euid);
21812
21926
  const file = booked === void 0 ? req.file : await this.ticketFile(req, fds);
21813
21927
  const planned = await this.checkedPlan({ ...req, file }, { ppid, cred, scope }, fds);
@@ -22404,6 +22518,7 @@ var Launcher = class {
22404
22518
  const scope = account.uid === 0 ? "" : pnpmHomeOf(account, this.pnpmHome);
22405
22519
  const start2 = dir ?? "/";
22406
22520
  const cwd = await physicalPathAsync(this.base, start2.startsWith("/") ? start2 : `/${start2}`);
22521
+ await this.enterable(this.execGuard(credOf(account), 0, tag), cwd);
22407
22522
  const file = await this.execFile(argv[0] ?? "", cwd, this.execGuard(credOf(account), 0, tag));
22408
22523
  if (!await this.base.exists(cwd)) await this.stackFor(tag).fs.mkdir(cwd, { recursive: true });
22409
22524
  const planned = await this.plan(file, argv, cwd, scope);
@@ -22912,7 +23027,7 @@ import { connect as tls } from "node:tls";
22912
23027
  var PROBE_MS = 3e3;
22913
23028
  var PASSED = /* @__PURE__ */ new Set(["ECONNREFUSED", "EHOSTUNREACH", "ENETUNREACH", "ETIMEDOUT", "ECONNRESET"]);
22914
23029
  var NO_NAME = /* @__PURE__ */ new Set(["ENOTFOUND", "EAI_AGAIN", "EAI_NONAME", "EAI_FAIL", "ENODATA"]);
22915
- function codeOf6(e) {
23030
+ function codeOf7(e) {
22916
23031
  const code = e?.code;
22917
23032
  return typeof code === "string" ? code : void 0;
22918
23033
  }
@@ -22941,7 +23056,7 @@ function probe(secure, host, port, ms, signal) {
22941
23056
  signal?.addEventListener("abort", stop, { once: true });
22942
23057
  socket.once(secure ? "secureConnect" : "connect", () => done4("EPROTO"));
22943
23058
  socket.once("error", (e) => {
22944
- const code = codeOf6(e) ?? "";
23059
+ const code = codeOf7(e) ?? "";
22945
23060
  done4(PASSED.has(code) ? code : "EPROTO");
22946
23061
  });
22947
23062
  });
@@ -22956,7 +23071,7 @@ async function diagnose(url, ms = PROBE_MS, signal) {
22956
23071
  await abortable(lookup3(host), signal);
22957
23072
  } catch (e) {
22958
23073
  if (signal?.aborted) throw signal.reason;
22959
- return NO_NAME.has(codeOf6(e) ?? "") ? "EAI_NONAME" : void 0;
23074
+ return NO_NAME.has(codeOf7(e) ?? "") ? "EAI_NONAME" : void 0;
22960
23075
  }
22961
23076
  const code = await probe(secure, host, port, ms, signal);
22962
23077
  signal?.throwIfAborted();
@@ -22975,7 +23090,7 @@ function diagnosing(transport, check = byDefault) {
22975
23090
  try {
22976
23091
  return await open(request);
22977
23092
  } catch (e) {
22978
- if (request.signal.aborted || !(e instanceof Error) || codeOf6(e)) throw e;
23093
+ if (request.signal.aborted || !(e instanceof Error) || codeOf7(e)) throw e;
22979
23094
  const code = await abortable(
22980
23095
  check(request.url, request.signal).catch(() => void 0),
22981
23096
  request.signal