@ai-ecoverse/slicc-kernel 1.95.1 → 1.95.3

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
@@ -7449,7 +7449,7 @@ var FreshModules = class {
7449
7449
  },
7450
7450
  link: async (from, to, follow2) => {
7451
7451
  await fs.link(from, to, follow2);
7452
- const source = follow2 && fs.realpath ? await fs.realpath(from, true) : from;
7452
+ const source = follow2 && fs.realpath ? await fs.realpath(from, true).catch(() => from) : from;
7453
7453
  const fresh2 = this.fresh.get(normalizePath(source));
7454
7454
  if (fresh2) this.fresh.set(normalizePath(to), fresh2);
7455
7455
  }
@@ -10659,7 +10659,7 @@ function mountTable(mounts = []) {
10659
10659
  }
10660
10660
 
10661
10661
  // src/version.ts
10662
- var KERNEL_VERSION = true ? "1.95.1" : "0.0.0-dev";
10662
+ var KERNEL_VERSION = true ? "1.95.3" : "0.0.0-dev";
10663
10663
  var OS_RELEASE = "6.0.0-slicc";
10664
10664
  function procVersion() {
10665
10665
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -21777,15 +21777,29 @@ function codeOf6(e) {
21777
21777
  const code = e?.code;
21778
21778
  return typeof code === "string" ? code : void 0;
21779
21779
  }
21780
- function probe(secure, host, port, ms) {
21780
+ function abortable(work, signal) {
21781
+ if (!signal) return work;
21782
+ if (signal.aborted) return Promise.reject(signal.reason);
21783
+ let stop = () => {
21784
+ };
21785
+ const aborted2 = new Promise((_, reject) => {
21786
+ stop = () => reject(signal.reason);
21787
+ signal.addEventListener("abort", stop, { once: true });
21788
+ });
21789
+ return Promise.race([work, aborted2]).finally(() => signal.removeEventListener("abort", stop));
21790
+ }
21791
+ function probe(secure, host, port, ms, signal) {
21781
21792
  return new Promise((resolve2) => {
21782
21793
  const socket = secure ? tls({ host, port, ...isIP2(host) ? {} : { servername: host } }) : tcp({ host, port });
21794
+ const stop = () => done4("ABORTED");
21783
21795
  const done4 = (code) => {
21784
21796
  clearTimeout(timer);
21797
+ signal?.removeEventListener("abort", stop);
21785
21798
  socket.destroy();
21786
21799
  resolve2(code);
21787
21800
  };
21788
21801
  const timer = setTimeout(() => done4("ETIMEDOUT"), ms);
21802
+ signal?.addEventListener("abort", stop, { once: true });
21789
21803
  socket.once(secure ? "secureConnect" : "connect", () => done4("EPROTO"));
21790
21804
  socket.once("error", (e) => {
21791
21805
  const code = codeOf6(e) ?? "";
@@ -21793,19 +21807,24 @@ function probe(secure, host, port, ms) {
21793
21807
  });
21794
21808
  });
21795
21809
  }
21796
- async function diagnose(url, ms = PROBE_MS) {
21810
+ async function diagnose(url, ms = PROBE_MS, signal) {
21797
21811
  const at = new URL(url);
21798
21812
  const host = at.hostname.replace(/^\[(.*)\]$/, "$1");
21799
21813
  const secure = at.protocol === "wss:";
21800
21814
  const port = Number(at.port) || (secure ? 443 : 80);
21815
+ signal?.throwIfAborted();
21801
21816
  try {
21802
- await lookup3(host);
21817
+ await abortable(lookup3(host), signal);
21803
21818
  } catch (e) {
21819
+ if (signal?.aborted) throw signal.reason;
21804
21820
  return NO_NAME.has(codeOf6(e) ?? "") ? "EAI_NONAME" : void 0;
21805
21821
  }
21806
- return probe(secure, host, port, ms);
21822
+ const code = await probe(secure, host, port, ms, signal);
21823
+ signal?.throwIfAborted();
21824
+ return code;
21807
21825
  }
21808
- function diagnosing(transport, check = diagnose) {
21826
+ var byDefault = (url, signal) => diagnose(url, PROBE_MS, signal);
21827
+ function diagnosing(transport, check = byDefault) {
21809
21828
  const open = transport.websocket;
21810
21829
  if (!open) return transport;
21811
21830
  return {
@@ -21818,7 +21837,11 @@ function diagnosing(transport, check = diagnose) {
21818
21837
  return await open(request);
21819
21838
  } catch (e) {
21820
21839
  if (request.signal.aborted || !(e instanceof Error) || codeOf6(e)) throw e;
21821
- const code = await check(request.url).catch(() => void 0);
21840
+ const code = await abortable(
21841
+ check(request.url, request.signal).catch(() => void 0),
21842
+ request.signal
21843
+ );
21844
+ request.signal.throwIfAborted();
21822
21845
  throw code ? Object.assign(e, { code }) : e;
21823
21846
  }
21824
21847
  }