oasis_test_v2 2.2.102 → 2.2.103

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.
Files changed (2) hide show
  1. package/dist/index.js +44 -6
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -247578,7 +247578,8 @@ function nodesDomain(deps) {
247578
247578
  resolve11({ ok: false, code: "timeout", reason: `\u8FD9\u53F0\u8282\u70B9\u6CA1\u5728 ${Math.round(RUNTIME_DETECT_TIMEOUT_MS / 1e3)} \u79D2\u5185\u56DE\u8BDD\uFF0C\u6CA1\u62FF\u5230\u63A2\u6D4B\u7ED3\u679C` });
247579
247579
  }, RUNTIME_DETECT_TIMEOUT_MS);
247580
247580
  runtimeDetectWaiters.set(requestId, {
247581
- resolve: (r) => resolve11(r.ok ? { ok: true, runtimes: r.runtimes ?? [] } : { ok: false, code: "node", reason: r.reason ?? "\u8FD9\u53F0\u8282\u70B9\u63A2\u6D4B\u8FD0\u884C\u65F6\u65F6\u51FA\u9519\u4E86" }),
247581
+ nodeId,
247582
+ resolve: (r) => resolve11(r.ok ? { ok: true, runtimes: r.runtimes ?? [] } : { ok: false, code: r.code ?? "node", reason: r.reason ?? "\u8FD9\u53F0\u8282\u70B9\u63A2\u6D4B\u8FD0\u884C\u65F6\u65F6\u51FA\u9519\u4E86" }),
247582
247583
  timer
247583
247584
  });
247584
247585
  const sent = hub.dispatch(nodeId, { type: "detect_runtimes", requestId });
@@ -247594,6 +247595,27 @@ function nodesDomain(deps) {
247594
247595
  runtimeDetectInFlight.set(nodeId, task);
247595
247596
  return task;
247596
247597
  }
247598
+ const reenrollDetects = /* @__PURE__ */ new Map();
247599
+ const REENROLL_DETECT_TTL_MS = 30 * 6e4;
247600
+ function startReenrollDetect(enrollToken, nodeId, conn) {
247601
+ const nowMs = Date.now();
247602
+ for (const [k2, v2] of reenrollDetects) if (v2.expiresAt <= nowMs) reenrollDetects.delete(k2);
247603
+ const rec2 = { nodeId, conn, expiresAt: nowMs + REENROLL_DETECT_TTL_MS };
247604
+ reenrollDetects.set(enrollToken, rec2);
247605
+ void detectNodeRuntimes(nodeId).then((outcome) => {
247606
+ rec2.outcome = outcome;
247607
+ if (!outcome.ok) console.log(`[nodes] \u91CD\u65B0\u63A5\u5165\u65F6\u73B0\u573A\u63A2\u6D4B\u6CA1\u62FF\u5230\u7ED3\u679C(node=${nodeId})\uFF1A${outcome.reason}\uFF1B\u7B2C 3 \u6B65\u9000\u56DE\u8FD9\u53F0\u8282\u70B9\u4E0A\u6B21\u4E0A\u62A5\u7684\u5217\u8868`);
247608
+ });
247609
+ }
247610
+ function detectedForEnrollment(enrollToken, nodeId) {
247611
+ const latest = detectedRuntimesOf(nodeId);
247612
+ const rec2 = reenrollDetects.get(enrollToken);
247613
+ if (!rec2 || rec2.nodeId !== nodeId) return latest;
247614
+ const conn = deps.getHub()?.connectedDaemons().find((d) => d.daemonId === nodeId);
247615
+ if (!conn || conn !== rec2.conn) return latest;
247616
+ if (!rec2.outcome) return void 0;
247617
+ return rec2.outcome.ok ? rec2.outcome.runtimes : latest;
247618
+ }
247597
247619
  let hubWired = false;
247598
247620
  function wireHub(hub) {
247599
247621
  if (hubWired) return;
@@ -247691,6 +247713,14 @@ function nodesDomain(deps) {
247691
247713
  deps.onStatusChange?.();
247692
247714
  }
247693
247715
  });
247716
+ hub.addDisconnectListener?.((daemonId) => {
247717
+ for (const [requestId, waiter] of runtimeDetectWaiters) {
247718
+ if (waiter.nodeId !== daemonId) continue;
247719
+ runtimeDetectWaiters.delete(requestId);
247720
+ clearTimeout(waiter.timer);
247721
+ waiter.resolve({ ok: false, code: "offline", reason: "\u8FDE\u63A5\u65AD\u5F00\u4E86\uFF0C\u8282\u70B9\u6CA1\u6765\u5F97\u53CA\u56DE\u62A5\u63A2\u6D4B\u7ED3\u679C" });
247722
+ }
247723
+ });
247694
247724
  hub.onDaemonDisconnected = async (daemonId) => {
247695
247725
  quotaByNode.delete(daemonId);
247696
247726
  try {
@@ -247895,7 +247925,7 @@ function nodesDomain(deps) {
247895
247925
  const crossCompany = raw?.companyId !== void 0 && companyId !== void 0 && raw.companyId !== companyId;
247896
247926
  const entry = crossCompany ? null : raw;
247897
247927
  const nodeId = entry?.issuedNodeId;
247898
- const detected = nodeId !== void 0 ? detectedRuntimesOf(nodeId) : void 0;
247928
+ const detected = nodeId !== void 0 ? detectedForEnrollment(enrollToken, nodeId) : void 0;
247899
247929
  const nodeConnected = nodeId !== void 0 && (deps.getHub()?.connectedDaemons() ?? []).some((d) => d.daemonId === nodeId);
247900
247930
  const boundNodeReady = nodeId !== void 0 && (nodeConnected || usable.some((r) => r.nodeId === nodeId));
247901
247931
  const boundNode = boundNodeReady && nodeId !== void 0 ? await deps.nodeStore.getNode(nodeId) : null;
@@ -247987,6 +248017,8 @@ function nodesDomain(deps) {
247987
248017
  deps.nodeTokens.clearRevocations(nodeId);
247988
248018
  const existing = deps.nodeTokens.list().find((e) => e.nodeId === nodeId);
247989
248019
  const token2 = existing?.token ?? deps.nodeTokens.issue(nodeId);
248020
+ const liveConn = deps.getHub()?.connectedDaemons().find((d) => d.daemonId === nodeId);
248021
+ if (liveConn) startReenrollDetect(enrollToken, nodeId, liveConn);
247990
248022
  return { status: 200, body: { nodeId, token: token2 } };
247991
248023
  });
247992
248024
  router.patch("/api/nodes/:nodeId", async (req) => {
@@ -297882,7 +297914,7 @@ async function waitForCommandAuthorization(base, headers, draftId, fallback) {
297882
297914
  }
297883
297915
  }
297884
297916
  }
297885
- var CLI_VERSION = "2.2.102" ? "2.2.102" : "dev";
297917
+ var CLI_VERSION = "2.2.103" ? "2.2.103" : "dev";
297886
297918
  function apiHeaders(token2, company) {
297887
297919
  const headers = {
297888
297920
  authorization: `Bearer ${token2}`,
@@ -301918,7 +301950,7 @@ function shimScript() {
301918
301950
  }
301919
301951
 
301920
301952
  // src/index.ts
301921
- var PKG_VERSION = true ? "2.2.102" : "dev";
301953
+ var PKG_VERSION = true ? "2.2.103" : "dev";
301922
301954
  var LOCAL_BIN = localBin();
301923
301955
  var NPM_PREFIX = npmPrefix();
301924
301956
  var INSTANCE = DEFAULT_INSTANCE;
@@ -302310,8 +302342,14 @@ async function startOneInstance(o) {
302310
302342
  }
302311
302343
  const pidNow = readPid();
302312
302344
  const alive2 = !!pidNow && isRunning2(pidNow);
302313
- if (alive2 && !enrollToken && label2 === before && !serverChanged && !companyChanged && !nameChanged) {
302314
- console.log(`\u2713 ${INSTANCE}\uFF1A\u5DF2\u5728\u8DD1\uFF08PID ${pidNow}\uFF0C${label2 ?? "?"}\uFF09\uFF0C\u7248\u672C\u4E0E\u914D\u7F6E\u5747\u672A\u53D8\uFF0C\u672A\u91CD\u542F`);
302345
+ const identityChanged = !!prev && (prev.nodeId !== nodeId || prev.token !== token2);
302346
+ if (alive2 && label2 === before && !serverChanged && !companyChanged && !identityChanged) {
302347
+ if (enrollToken) {
302348
+ console.log(`\u2713 ${INSTANCE}\uFF1A\u5DF2\u5728\u8FD0\u884C\uFF0C\u672A\u91CD\u542F\uFF08PID ${pidNow}\uFF0C${label2 ?? "?"}\uFF09\uFF1B\u63A5\u5165\u5DF2\u786E\u8BA4\uFF0C\u8BF7\u56DE\u5230\u9875\u9762\u9009\u62E9\u8981\u6DFB\u52A0\u7684\u8FD0\u884C\u65F6`);
302349
+ } else {
302350
+ console.log(`\u2713 ${INSTANCE}\uFF1A\u5DF2\u5728\u8DD1\uFF08PID ${pidNow}\uFF0C${label2 ?? "?"}\uFF09\uFF0C\u7248\u672C\u4E0E\u914D\u7F6E\u5747\u672A\u53D8\uFF0C\u672A\u91CD\u542F`);
302351
+ }
302352
+ if (nameChanged) console.log(` \u672C\u673A\u8BB0\u5F55\u7684\u8282\u70B9\u540D\u5DF2\u66F4\u65B0\uFF1A${prev.name} \u2192 ${name}`);
302315
302353
  return;
302316
302354
  }
302317
302355
  stopDaemon(INSTANCE);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oasis_test_v2",
3
- "version": "2.2.102",
3
+ "version": "2.2.103",
4
4
  "description": "Oasis node daemon + CLI — background daemon, auto-start, full server CLI",
5
5
  "bin": {
6
6
  "oasis": "./dist/index.js"
@@ -26,6 +26,6 @@
26
26
  "node": ">=20"
27
27
  },
28
28
  "oasisRelease": {
29
- "sourceHead": "0f65390893b8eb868ae7c38792ef34c1a00cb0b0"
29
+ "sourceHead": "be78091fa39438c497835a6207b5df1d519afcc9"
30
30
  }
31
31
  }