vana-cli 0.27.0 → 0.28.1
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/cli/auth.d.ts +11 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +16 -0
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +30 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/server-start.d.ts +6 -2
- package/dist/cli/server-start.d.ts.map +1 -1
- package/dist/cli/server-start.js +69 -14
- package/dist/cli/server-start.js.map +1 -1
- package/dist/personal-server/local/detach.d.ts +29 -0
- package/dist/personal-server/local/detach.d.ts.map +1 -0
- package/dist/personal-server/local/detach.js +134 -0
- package/dist/personal-server/local/detach.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { type ResolvedNode } from "../pdpp/host.js";
|
|
|
3
3
|
import { runOwnerBindingExchange } from "../personal-server/local/owner-binding.js";
|
|
4
4
|
import { type OwnerSecretStore } from "../personal-server/local/owner-secret.js";
|
|
5
5
|
import { startLocalServer, type LocalServerHandle, type PublicMarker, type RunningServer } from "../personal-server/local/server.js";
|
|
6
|
+
import { startDetachedServer } from "../personal-server/local/detach.js";
|
|
6
7
|
import { type FrpcResolution } from "../personal-server/local/frpc.js";
|
|
7
8
|
import { signServerRegistration } from "../personal-server/local/registration.js";
|
|
8
9
|
import { type VanaCredentials } from "./auth.js";
|
|
@@ -32,6 +33,7 @@ export interface ServerStartDeps {
|
|
|
32
33
|
signRegistration: typeof signServerRegistration;
|
|
33
34
|
readPublicMarker: (network: VanaNetworkName) => PublicMarker | null;
|
|
34
35
|
writePublicMarker: (network: VanaNetworkName, marker: PublicMarker) => Promise<void>;
|
|
36
|
+
startDetached: typeof startDetachedServer;
|
|
35
37
|
/** Resolves when the person asks the server to stop (Ctrl+C). */
|
|
36
38
|
waitForStop: (handle: LocalServerHandle) => Promise<"stopped" | "exited">;
|
|
37
39
|
}
|
|
@@ -45,7 +47,9 @@ export declare function runServerStart(options: {
|
|
|
45
47
|
port?: number;
|
|
46
48
|
noInput?: boolean;
|
|
47
49
|
yes?: boolean;
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
+
/** Stay local: no tunnel, no registration, nothing apps can reach. */
|
|
51
|
+
local?: boolean;
|
|
52
|
+
/** Start in the background and return once it answers. */
|
|
53
|
+
detach?: boolean;
|
|
50
54
|
}, io: ServerStartIo, deps?: ServerStartDeps): Promise<number>;
|
|
51
55
|
//# sourceMappingURL=server-start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-start.d.ts","sourceRoot":"","sources":["../../src/cli/server-start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,uBAAuB,EAExB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAKL,gBAAgB,EAEhB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,sBAAsB,EAEvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AAKnB,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8DAA8D;IAC9D,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,4EAA4E;IAC5E,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3E,eAAe,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,OAAO,uBAAuB,CAAC;IACzC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC1D,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACxD,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,aAAa,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,KAAK,EAAE,OAAO,gBAAgB,CAAC;IAC/B,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,gBAAgB,EAAE,OAAO,sBAAsB,CAAC;IAChD,gBAAgB,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,YAAY,GAAG,IAAI,CAAC;IACpE,iBAAiB,EAAE,CACjB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,iEAAiE;IACjE,WAAW,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;CAC3E;AAED,wBAAgB,sBAAsB,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"server-start.d.ts","sourceRoot":"","sources":["../../src/cli/server-start.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/server-start.js
CHANGED
|
@@ -6,6 +6,7 @@ import { isRuntimeInstalled, ensureRuntime, } from "../personal-server/local/run
|
|
|
6
6
|
import { runOwnerBindingExchange, } from "../personal-server/local/owner-binding.js";
|
|
7
7
|
import { defaultOwnerSecretStore, ownerSecretKey, } from "../personal-server/local/owner-secret.js";
|
|
8
8
|
import { choosePort, findRunningServers, nextMessage, readPublicMarker, startLocalServer, writePublicMarker, } from "../personal-server/local/server.js";
|
|
9
|
+
import { startDetachedServer, } from "../personal-server/local/detach.js";
|
|
9
10
|
import { installFrpc, resolveFrpc, } from "../personal-server/local/frpc.js";
|
|
10
11
|
import { RegistrationNeedsBrowserError, signServerRegistration, } from "../personal-server/local/registration.js";
|
|
11
12
|
import { getAccountUrl, isExpired, loadCredentials, openBrowser, saveCredentials, } from "./auth.js";
|
|
@@ -30,6 +31,7 @@ export function defaultServerStartDeps() {
|
|
|
30
31
|
signRegistration: signServerRegistration,
|
|
31
32
|
readPublicMarker,
|
|
32
33
|
writePublicMarker,
|
|
34
|
+
startDetached: startDetachedServer,
|
|
33
35
|
waitForStop: (handle) => new Promise((resolve) => {
|
|
34
36
|
// Stay subscribed until the process ends: a second Ctrl+C while the
|
|
35
37
|
// server shuts down must not kill the CLI before it cleans up.
|
|
@@ -107,19 +109,20 @@ export async function runServerStart(options, io, deps = defaultServerStartDeps(
|
|
|
107
109
|
}
|
|
108
110
|
deps.secrets.set(secretKey, binding);
|
|
109
111
|
}
|
|
110
|
-
// Public
|
|
111
|
-
//
|
|
112
|
+
// Public unless asked to stay local, as Desktop's server is. A registered
|
|
113
|
+
// server started --local stays registered, and apps find it offline.
|
|
112
114
|
const marker = deps.readPublicMarker(options.network);
|
|
113
115
|
let frpc = null;
|
|
114
|
-
if (options.
|
|
116
|
+
if (options.local) {
|
|
117
|
+
if (marker) {
|
|
118
|
+
io.say("This server is registered; while it runs local only, apps find it offline.");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
115
122
|
frpc = await deps.resolveFrpc();
|
|
116
123
|
if (frpc.kind === "unavailable") {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
io.event({ type: "server-tunnel-unavailable", reason: frpc.reason });
|
|
120
|
-
return CliExitCode.NOT_READY;
|
|
121
|
-
}
|
|
122
|
-
io.say(`This server is registered, but ${frpc.reason} It starts local only.`);
|
|
124
|
+
io.say(`${frpc.reason} The server starts local only.`);
|
|
125
|
+
io.event({ type: "server-tunnel-unavailable", reason: frpc.reason });
|
|
123
126
|
}
|
|
124
127
|
}
|
|
125
128
|
// One-time installs: Node 24, the pinned server, the tunnel client.
|
|
@@ -159,6 +162,16 @@ export async function runServerStart(options, io, deps = defaultServerStartDeps(
|
|
|
159
162
|
io.say("Installing the tunnel client (one time)...");
|
|
160
163
|
frpcPath = await deps.installFrpc(logPath);
|
|
161
164
|
}
|
|
165
|
+
// Everything that needed a person is done: the rest runs in the
|
|
166
|
+
// background, as a second `vana server start` that outlives this one.
|
|
167
|
+
if (options.detach) {
|
|
168
|
+
io.say("Starting in the background...");
|
|
169
|
+
return reportDetached(await deps.startDetached({
|
|
170
|
+
network: options.network,
|
|
171
|
+
port: options.port,
|
|
172
|
+
local: options.local,
|
|
173
|
+
}), io);
|
|
174
|
+
}
|
|
162
175
|
const port = await deps.choosePort(options.port);
|
|
163
176
|
if (!port) {
|
|
164
177
|
io.say(options.port
|
|
@@ -191,6 +204,7 @@ export async function runServerStart(options, io, deps = defaultServerStartDeps(
|
|
|
191
204
|
url,
|
|
192
205
|
session_token: handle.accessToken,
|
|
193
206
|
expires_at: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
|
|
207
|
+
started_by: "vana-server-start",
|
|
194
208
|
},
|
|
195
209
|
});
|
|
196
210
|
io.say(`Personal Server running at ${url}`);
|
|
@@ -211,7 +225,7 @@ export async function runServerStart(options, io, deps = defaultServerStartDeps(
|
|
|
211
225
|
publicUrl = outcome.publicUrl;
|
|
212
226
|
}
|
|
213
227
|
else {
|
|
214
|
-
io.say("Local only: not registered and not reachable from other devices.
|
|
228
|
+
io.say("Local only: not registered and not reachable from other devices.");
|
|
215
229
|
}
|
|
216
230
|
io.say("Collect into it with `vana connect <source>`. Press Ctrl+C to stop.");
|
|
217
231
|
io.event({
|
|
@@ -274,10 +288,6 @@ async function goPublic(handle, input) {
|
|
|
274
288
|
io.say(`Registered. Opening ${publicUrl ?? "the public URL"}...`);
|
|
275
289
|
return { registered: true, publicUrl };
|
|
276
290
|
}
|
|
277
|
-
if (!input.public) {
|
|
278
|
-
io.say("This server is not registered, so apps cannot find it. Run with --public to register it.");
|
|
279
|
-
return { registered: false, publicUrl: null };
|
|
280
|
-
}
|
|
281
291
|
if (!publicUrl || !serverAddress) {
|
|
282
292
|
io.say("The server did not reserve a public URL, so it stays local only.");
|
|
283
293
|
return { registered: false, publicUrl: null };
|
|
@@ -334,4 +344,49 @@ async function goPublic(handle, input) {
|
|
|
334
344
|
return { registered: false, publicUrl: null };
|
|
335
345
|
}
|
|
336
346
|
}
|
|
347
|
+
/** Say what the background server reported, and whether it came up. */
|
|
348
|
+
function reportDetached(start, io) {
|
|
349
|
+
for (const event of start.events) {
|
|
350
|
+
io.event(event);
|
|
351
|
+
const text = (key) => String(event[key] ?? "");
|
|
352
|
+
switch (event.type) {
|
|
353
|
+
case "server-ready":
|
|
354
|
+
io.say(`Personal Server running at ${text("url")}`);
|
|
355
|
+
io.say(`Owner ${text("owner")}, network ${text("network")}.`);
|
|
356
|
+
if (!event.publicUrl) {
|
|
357
|
+
io.say("Local only: not registered and not reachable from other devices.");
|
|
358
|
+
}
|
|
359
|
+
break;
|
|
360
|
+
case "server-registered":
|
|
361
|
+
io.say(`Registered ${text("serverUrl")}.`);
|
|
362
|
+
break;
|
|
363
|
+
case "server-tunnel":
|
|
364
|
+
io.say(event.status === "connected"
|
|
365
|
+
? `Reachable by apps at ${text("url")}`
|
|
366
|
+
: `The public URL is not answering yet: ${text("warning") || text("status")}`);
|
|
367
|
+
break;
|
|
368
|
+
case "server-registration-failed":
|
|
369
|
+
io.say(event.needsBrowser
|
|
370
|
+
? "Not registered: this account confirms registration in a browser. Run `vana server start` once in the foreground."
|
|
371
|
+
: `Not registered: ${text("message")}`);
|
|
372
|
+
break;
|
|
373
|
+
case "server-tunnel-unavailable":
|
|
374
|
+
io.say(`${text("reason")} The server runs local only.`);
|
|
375
|
+
break;
|
|
376
|
+
case "server-already-running":
|
|
377
|
+
io.say(`Your Personal Server is already running at ${text("url")}.`);
|
|
378
|
+
break;
|
|
379
|
+
default:
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
if (!start.ready) {
|
|
384
|
+
io.say(`The background server did not start. See ${start.logPath}.`);
|
|
385
|
+
return start.events.some((event) => event.type === "server-already-running")
|
|
386
|
+
? CliExitCode.OK
|
|
387
|
+
: CliExitCode.FAILURE;
|
|
388
|
+
}
|
|
389
|
+
io.say(`Running in the background (pid ${start.pid}). Stop it with \`vana server stop\`.`);
|
|
390
|
+
return CliExitCode.OK;
|
|
391
|
+
}
|
|
337
392
|
//# sourceMappingURL=server-start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-start.js","sourceRoot":"","sources":["../../src/cli/server-start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,uBAAuB,GAExB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,uBAAuB,EACvB,cAAc,GAEf,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAKlB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,WAAW,GAEZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,GAEvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,aAAa,EACb,SAAS,EACT,eAAe,EACf,WAAW,EACX,eAAe,GAEhB,MAAM,WAAW,CAAC;AAEnB,gFAAgF;AAChF,MAAM,UAAU,GAAG,eAAe,CAAC;AAoCnC,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,kBAAkB;QAClB,eAAe;QACf,eAAe;QACf,OAAO,EAAE,uBAAuB,EAAE;QAClC,QAAQ,EAAE,uBAAuB;QACjC,WAAW;QACX,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;QAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;QAC9D,UAAU;QACV,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;QAC9C,gBAAgB,EAAE,sBAAsB;QACxC,gBAAgB;QAChB,iBAAiB;QACjB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACtB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACtB,oEAAoE;YACpE,+DAA+D;YAC/D,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAOC,EACD,EAAiB,EACjB,OAAwB,sBAAsB,EAAE;IAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO,CACtB,WAAW,IAAI,OAAO,EAAE,aAAa,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CACjE,CAAC;IAEF,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1C,EAAE,CAAC,GAAG,CACJ,6EAA6E,CAC9E,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACzC,OAAO,WAAW,CAAC,qBAAqB,CAAC;IAC3C,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,gBAAgB;IAChB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CACvB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAC1E,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,EAAE,CAAC,GAAG,CACJ,8CAA8C,IAAI,CAAC,GAAG,qBAAqB,CAC5E,CAAC;QACF,EAAE,CAAC,KAAK,CAAC;YACP,IAAI,EAAE,wBAAwB;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,EAAE,CAAC,GAAG,CACJ,KAAK,CAAC,KAAK;YACT,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,+BAA+B,KAAK,CAAC,KAAK,gCAAgC;YACxF,CAAC,CAAC,6BAA6B,KAAK,CAAC,GAAG,gCAAgC,CAC3E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAE/B,2DAA2D;IAC3D,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,OAAO,GAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,EAAE,CAAC,GAAG,CACJ,+EAA+E,CAChF,CAAC;YACF,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;YACtD,OAAO,WAAW,CAAC,qBAAqB,CAAC;QAC3C,CAAC;QACD,EAAE,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC3B,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,EAClD;gBACE,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CACzB,EAAE,CAAC,GAAG,CAAC,gCAAgC,GAAG,EAAE,CAAC;aAChD,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/D,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,CAAC;YACvD,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC;QACD,IACE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;YAC1B,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EACrE,CAAC;YACD,EAAE,CAAC,GAAG,CACJ,wCAAwC,OAAO,CAAC,aAAa,SAAS,OAAO,CAAC,OAAO,sBAAsB,CAC5G,CAAC;YACF,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,IAAI,GAA0B,IAAI,CAAC;IACvC,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAC7B,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrE,OAAO,WAAW,CAAC,SAAS,CAAC;YAC/B,CAAC;YACD,EAAE,CAAC,GAAG,CACJ,kCAAkC,IAAI,CAAC,MAAM,wBAAwB,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC;IAChD,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG;YACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;YACzD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;YACjE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,EAAE,CAAC,GAAG,CACJ,4BAA4B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CACzF,CAAC;YACF,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,OAAO,WAAW,CAAC,SAAS,CAAC;QAC/B,CAAC;QACD,IACE,CAAC,OAAO,CAAC,GAAG;YACZ,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EACpE,CAAC;YACD,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrB,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,GAAG,CACJ,2BAA2B,UAAU,sCAAsC,CAC5E,CAAC;gBACF,OAAO,WAAW,CAAC,SAAS,CAAC;YAC/B,CAAC;YACD,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAChC,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,YAAY;QAAE,EAAE,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,QAAQ,GAAkB,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,IAAI,UAAU,EAAE,CAAC;QACf,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QACrD,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,EAAE,CAAC,GAAG,CACJ,OAAO,CAAC,IAAI;YACV,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,YAAY;YACzD,CAAC,CAAC,4CAA4C,CACjD,CAAC;QACF,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI;YACJ,UAAU;YACV,OAAO;YACP,IAAI;YACJ,OAAO;YACP,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,0EAA0E;IAC1E,MAAM,GAAG,GAAG,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,IAAI,CAAC,eAAe,CAAC;QACzB,GAAG,WAAW;QACd,eAAe,EAAE;YACf,GAAG;YACH,aAAa,EAAE,MAAM,CAAC,WAAW;YACjC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;SAC1E;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IAC5C,EAAE,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,aAAa,aAAa,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IAEtE,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;YACrC,GAAG,OAAO;YACV,UAAU;YACV,WAAW,EAAE,OAAO,CAAC,aAAa;YAClC,YAAY,EAAE,OAAO,CAAC,OAAO;YAC7B,OAAO;YACP,EAAE;YACF,IAAI;SACL,CAAC,CAAC;QACH,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAChC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,GAAG,CACJ,+FAA+F,CAChG,CAAC;IACJ,CAAC;IACD,EAAE,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IAC9E,EAAE,CAAC,KAAK,CAAC;QACP,IAAI,EAAE,cAAc;QACpB,GAAG;QACH,KAAK,EAAE,OAAO,CAAC,aAAa;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU;QACV,SAAS;QACT,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,EAAE,CAAC,GAAG,CAAC,iDAAiD,OAAO,GAAG,CAAC,CAAC;QACpE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnB,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrC,OAAO,WAAW,CAAC,EAAE,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,QAAQ,CACrB,MAAyB,EACzB,KAUC;IAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC3B,IAAI,KAAoB,CAAC;IACzB,IAAI,CAAC;QACH,uEAAuE;QACvE,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IACD,MAAM,SAAS,GACb,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,aAAa,GACjB,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvE,oEAAoE;IACpE,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QACtC,WAAW,EAAE,CAAC;QACd,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,EAAE,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CACJ,wCAAwC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,EAAE,CAAC,KAAK,CAAC;YACP,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC9B,EAAE,CAAC,GAAG,CAAC,uBAAuB,SAAS,IAAI,gBAAgB,KAAK,CAAC,CAAC;QAClE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,EAAE,CAAC,GAAG,CACJ,0FAA0F,CAC3F,CAAC;QACF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,EAAE,CAAC,GAAG,CACJ,eAAe,SAAS,2EAA2E,CACpG,CAAC;IACF,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,MAAM,EACN,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,EAC1C,MAAM,CACP,CAAC;QACF,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC;YACE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;YACpC,OAAO,EAAE,QAAQ,CAAC,OAA8B;YAChD,YAAY,EAAE,CAAC,KAAK,CAAC,OAAO;SAC7B,EACD;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CACzB,EAAE,CAAC,GAAG,CAAC,6CAA6C,GAAG,EAAE,CAAC;SAC7D,CACF,CAAC;QACF,IACE,MAAM,CAAC,aAAa;YACpB,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,EACvE,CAAC;YACD,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,aAAa,SAAS,KAAK,CAAC,YAAY,0BAA0B,CAClH,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,MAAM,EACN,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,EAC5C,MAAM,CACP,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE;YAC1C,aAAa;YACb,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,uBAAuB,SAAS,KAAK,CAAC,CAAC;QAC9C,EAAE,CAAC,KAAK,CAAC;YACP,IAAI,EAAE,mBAAmB;YACzB,aAAa;YACb,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;YACpC,OAAO,EAAE,MAAM,CAAC,GAAG;SACpB,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,EAAE,CAAC,GAAG,CAAC,mBAAmB,OAAO,wCAAwC,CAAC,CAAC;QAC3E,EAAE,CAAC,KAAK,CAAC;YACP,IAAI,EAAE,4BAA4B;YAClC,YAAY,EAAE,KAAK,YAAY,6BAA6B;YAC5D,OAAO;SACR,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"server-start.js","sourceRoot":"","sources":["../../src/cli/server-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { VanaNetworkName } from "../../core/network.js";
|
|
2
|
+
export interface DetachedStart {
|
|
3
|
+
/** Every event the background server wrote, in order. */
|
|
4
|
+
events: Array<Record<string, unknown>>;
|
|
5
|
+
ready: boolean;
|
|
6
|
+
pid: number | null;
|
|
7
|
+
logPath: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Run `vana server start` again as a background process that outlives this
|
|
11
|
+
* one, and wait until it answers: ready, and once registered, until its
|
|
12
|
+
* public URL answers too. It runs with --no-input, so everything that needs
|
|
13
|
+
* a person (login, owner confirmation, installs) must be done before.
|
|
14
|
+
*/
|
|
15
|
+
export declare function startDetachedServer(input: {
|
|
16
|
+
network: VanaNetworkName;
|
|
17
|
+
port?: number;
|
|
18
|
+
local?: boolean;
|
|
19
|
+
timeoutMs?: number;
|
|
20
|
+
tunnelTimeoutMs?: number;
|
|
21
|
+
}): Promise<DetachedStart>;
|
|
22
|
+
/** The pid of a `vana server start` running from this network's data dir. */
|
|
23
|
+
export declare function runningServerPid(network: VanaNetworkName): number | null;
|
|
24
|
+
/**
|
|
25
|
+
* Stop the server `vana server start` runs for this network, detached or
|
|
26
|
+
* not, the way Ctrl+C does, and wait until it has cleaned up.
|
|
27
|
+
*/
|
|
28
|
+
export declare function stopLocalServer(network: VanaNetworkName, timeoutMs?: number): Promise<"stopped" | "not-running" | "timeout">;
|
|
29
|
+
//# sourceMappingURL=detach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detach.d.ts","sourceRoot":"","sources":["../../../src/personal-server/local/detach.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAc7D,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAsBD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,aAAa,CAAC,CA0DzB;AAWD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAcxE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,SAAS,SAAS,GACjB,OAAO,CAAC,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC,CAUhD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import fsp from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { localServerDataDir } from "./config.js";
|
|
6
|
+
/** Events after which the background server will not become ready. */
|
|
7
|
+
const FAILURES = new Set([
|
|
8
|
+
"server-needs-login",
|
|
9
|
+
"server-needs-owner-confirmation",
|
|
10
|
+
"server-setup-required",
|
|
11
|
+
"server-owner-confirmation-failed",
|
|
12
|
+
"server-failed",
|
|
13
|
+
"server-exited",
|
|
14
|
+
"server-already-running",
|
|
15
|
+
]);
|
|
16
|
+
function readEvents(logPath) {
|
|
17
|
+
let text = "";
|
|
18
|
+
try {
|
|
19
|
+
text = fs.readFileSync(logPath, "utf8");
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
const events = [];
|
|
25
|
+
for (const line of text.split("\n")) {
|
|
26
|
+
if (!line.startsWith("{"))
|
|
27
|
+
continue;
|
|
28
|
+
try {
|
|
29
|
+
const event = JSON.parse(line);
|
|
30
|
+
if (typeof event.type === "string")
|
|
31
|
+
events.push(event);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// A partial line; read it next time.
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return events;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Run `vana server start` again as a background process that outlives this
|
|
41
|
+
* one, and wait until it answers: ready, and once registered, until its
|
|
42
|
+
* public URL answers too. It runs with --no-input, so everything that needs
|
|
43
|
+
* a person (login, owner confirmation, installs) must be done before.
|
|
44
|
+
*/
|
|
45
|
+
export async function startDetachedServer(input) {
|
|
46
|
+
const logDir = localServerDataDir(input.network);
|
|
47
|
+
await fsp.mkdir(logDir, { recursive: true, mode: 0o700 });
|
|
48
|
+
const logPath = path.join(logDir, "detached.log");
|
|
49
|
+
await fsp.writeFile(logPath, "", { mode: 0o600 });
|
|
50
|
+
const logFd = fs.openSync(logPath, "a");
|
|
51
|
+
const child = spawn(process.execPath, [
|
|
52
|
+
process.argv[1],
|
|
53
|
+
"server",
|
|
54
|
+
"start",
|
|
55
|
+
"--json",
|
|
56
|
+
"--no-input",
|
|
57
|
+
"--yes",
|
|
58
|
+
"--network",
|
|
59
|
+
input.network,
|
|
60
|
+
...(input.port ? ["--port", String(input.port)] : []),
|
|
61
|
+
...(input.local ? ["--local"] : []),
|
|
62
|
+
], {
|
|
63
|
+
detached: true,
|
|
64
|
+
stdio: ["ignore", logFd, logFd],
|
|
65
|
+
env: { ...process.env, VANA_DETACHED: "1" },
|
|
66
|
+
windowsHide: true,
|
|
67
|
+
});
|
|
68
|
+
fs.closeSync(logFd);
|
|
69
|
+
let exited = false;
|
|
70
|
+
child.once("exit", () => {
|
|
71
|
+
exited = true;
|
|
72
|
+
});
|
|
73
|
+
child.unref();
|
|
74
|
+
const started = Date.now();
|
|
75
|
+
let readyAt = null;
|
|
76
|
+
for (;;) {
|
|
77
|
+
const events = readEvents(logPath);
|
|
78
|
+
const ready = events.find((event) => event.type === "server-ready");
|
|
79
|
+
const failed = events.some((event) => FAILURES.has(String(event.type)));
|
|
80
|
+
if (failed || (exited && !ready)) {
|
|
81
|
+
return { events, ready: false, pid: child.pid ?? null, logPath };
|
|
82
|
+
}
|
|
83
|
+
if (ready) {
|
|
84
|
+
readyAt ??= Date.now();
|
|
85
|
+
const settled = ready.registered !== true ||
|
|
86
|
+
events.some((event) => event.type === "server-tunnel") ||
|
|
87
|
+
Date.now() - readyAt > (input.tunnelTimeoutMs ?? 90_000);
|
|
88
|
+
if (settled) {
|
|
89
|
+
return { events, ready: true, pid: child.pid ?? null, logPath };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (Date.now() - started > (input.timeoutMs ?? 5 * 60_000)) {
|
|
93
|
+
return { events, ready: false, pid: child.pid ?? null, logPath };
|
|
94
|
+
}
|
|
95
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function processIsRunning(pid) {
|
|
99
|
+
try {
|
|
100
|
+
process.kill(pid, 0);
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return error.code === "EPERM";
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** The pid of a `vana server start` running from this network's data dir. */
|
|
108
|
+
export function runningServerPid(network) {
|
|
109
|
+
try {
|
|
110
|
+
const pid = Number(JSON.parse(fs.readFileSync(path.join(localServerDataDir(network), ".vana-cli.lock"), "utf8")).pid);
|
|
111
|
+
return pid > 0 && processIsRunning(pid) ? pid : null;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Stop the server `vana server start` runs for this network, detached or
|
|
119
|
+
* not, the way Ctrl+C does, and wait until it has cleaned up.
|
|
120
|
+
*/
|
|
121
|
+
export async function stopLocalServer(network, timeoutMs = 20_000) {
|
|
122
|
+
const pid = runningServerPid(network);
|
|
123
|
+
if (!pid)
|
|
124
|
+
return "not-running";
|
|
125
|
+
process.kill(pid, "SIGTERM");
|
|
126
|
+
const started = Date.now();
|
|
127
|
+
while (Date.now() - started < timeoutMs) {
|
|
128
|
+
if (!processIsRunning(pid))
|
|
129
|
+
return "stopped";
|
|
130
|
+
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
131
|
+
}
|
|
132
|
+
return "timeout";
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=detach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detach.js","sourceRoot":"","sources":["../../../src/personal-server/local/detach.ts"],"names":[],"mappings":"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"}
|