mdmaid-desk 0.1.23 → 0.1.24
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/README.md +12 -6
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +57 -10
- package/dist/cli.js.map +1 -1
- package/dist/daemon-state.d.ts +2 -1
- package/dist/daemon-state.js +43 -3
- package/dist/daemon-state.js.map +1 -1
- package/dist/service-config.d.ts +1 -0
- package/dist/service-config.js +1 -0
- package/dist/service-config.js.map +1 -1
- package/dist/traefik-route.d.ts +11 -0
- package/dist/traefik-route.js +219 -0
- package/dist/traefik-route.js.map +1 -0
- package/dist/user-service.js +3 -4
- package/dist/user-service.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -261,7 +261,9 @@ authenticated URL such as:
|
|
|
261
261
|
http://mdmaid.desk.localhost/?token=...
|
|
262
262
|
```
|
|
263
263
|
|
|
264
|
-
No proxy, certificate, DNS, or `/etc/hosts` setup is required.
|
|
264
|
+
No manual proxy, certificate, DNS, or `/etc/hosts` setup is required. If
|
|
265
|
+
Traefik already owns port 80 on macOS, mdmaid.desk can add its route
|
|
266
|
+
automatically. After the first
|
|
265
267
|
authenticated open, the browser redirects to the clean URL, which can be
|
|
266
268
|
bookmarked. The service publishes a user-only `daemon.json` for local clients
|
|
267
269
|
and keeps its persistent random authentication token in a user-only
|
|
@@ -286,10 +288,13 @@ mdmaid-desk web
|
|
|
286
288
|
mdmaid-desk daemon stop
|
|
287
289
|
```
|
|
288
290
|
|
|
289
|
-
The default
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
291
|
+
The default attempt is port `80`. If it is unavailable and a compatible
|
|
292
|
+
Docker-backed Traefik owns it on macOS, mdmaid.desk registers a route there,
|
|
293
|
+
serves on private port `43127`, and keeps the portless browser URL. Otherwise
|
|
294
|
+
it serves directly on `43127` and reports the URL with that port. No random
|
|
295
|
+
port is selected. A default `web`, `tui`, `daemon start`, or CLI mutation
|
|
296
|
+
attaches to the healthy daemon recorded in the user-only descriptor. Select a
|
|
297
|
+
different port only when deliberately running an isolated instance:
|
|
293
298
|
|
|
294
299
|
```bash
|
|
295
300
|
mdmaid-desk daemon start --port 43210
|
|
@@ -297,7 +302,8 @@ mdmaid-desk daemon start --port 43210
|
|
|
297
302
|
|
|
298
303
|
If a healthy daemon already exists, the same-port `web` command reuses it and
|
|
299
304
|
a conflicting port is rejected. Stop the shared daemon before starting an
|
|
300
|
-
isolated instance against the same state directory.
|
|
305
|
+
isolated instance against the same state directory. An explicit `--port`
|
|
306
|
+
requires that exact port; it does not trigger the automatic fallbacks.
|
|
301
307
|
|
|
302
308
|
To start mdmaid.desk automatically at login, explicitly install its user
|
|
303
309
|
service (LaunchAgent on macOS, systemd user service on Linux):
|
package/dist/cli.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface RunOptions {
|
|
|
17
17
|
startServer?: (options: DeskServerOptions) => Promise<RunningDeskServer>;
|
|
18
18
|
runTui?: (client: DeskApiClient) => Promise<void>;
|
|
19
19
|
waitForShutdown?: (server: RunningDeskServer) => Promise<void>;
|
|
20
|
+
ensureTraefikRoute?: () => Promise<boolean>;
|
|
20
21
|
signal?: AbortSignal;
|
|
21
22
|
reviewPollIntervalMs?: number;
|
|
22
23
|
runningPackageVersion?: string;
|
package/dist/cli.js
CHANGED
|
@@ -12,7 +12,8 @@ import { startDaemon as startBackgroundDaemon, stopDaemon as stopBackgroundDaemo
|
|
|
12
12
|
import { normalizePublicUrl, startDeskServer, } from "./server.js";
|
|
13
13
|
import { readOrCreateAuthToken } from "./auth-state.js";
|
|
14
14
|
import { readPackageVersion } from "./package-info.js";
|
|
15
|
-
import { DEFAULT_DESK_ORIGIN, DEFAULT_DESK_PORT, } from "./service-config.js";
|
|
15
|
+
import { DEFAULT_DESK_ORIGIN, DEFAULT_DESK_PORT, FALLBACK_DESK_PORT, } from "./service-config.js";
|
|
16
|
+
import { ensureTraefikRoute as ensureDefaultTraefikRoute } from "./traefik-route.js";
|
|
16
17
|
import { runTui as runTerminalWorkspace } from "./tui.js";
|
|
17
18
|
import { installUserService as installLoginService, uninstallUserService as uninstallLoginService, } from "./user-service.js";
|
|
18
19
|
import { MermaidValidationError, validateMermaidMarkdown, } from "./mermaid-validation.js";
|
|
@@ -292,16 +293,53 @@ function validationReportFromError(error) {
|
|
|
292
293
|
return undefined;
|
|
293
294
|
}
|
|
294
295
|
async function runWeb(catalog, statePath, configuration, stdout, options) {
|
|
295
|
-
const { port, publicUrl } = configuration;
|
|
296
296
|
const token = await readOrCreateAuthToken(statePath);
|
|
297
297
|
const startServer = options.startServer ?? startDeskServer;
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
298
|
+
let publicUrl = configuration.publicUrl;
|
|
299
|
+
let server;
|
|
300
|
+
try {
|
|
301
|
+
server = await startServer({
|
|
302
|
+
catalog,
|
|
303
|
+
host: "127.0.0.1",
|
|
304
|
+
port: configuration.port,
|
|
305
|
+
token,
|
|
306
|
+
...(publicUrl ? { publicUrl } : {}),
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
if (!shouldTryFallback(error, configuration)) {
|
|
311
|
+
throw error;
|
|
312
|
+
}
|
|
313
|
+
server = await startServer({
|
|
314
|
+
catalog,
|
|
315
|
+
host: "127.0.0.1",
|
|
316
|
+
port: FALLBACK_DESK_PORT,
|
|
317
|
+
token,
|
|
318
|
+
publicUrl: DEFAULT_DESK_ORIGIN,
|
|
319
|
+
});
|
|
320
|
+
let proxied;
|
|
321
|
+
try {
|
|
322
|
+
proxied = await (options.ensureTraefikRoute ?? ensureDefaultTraefikRoute)();
|
|
323
|
+
}
|
|
324
|
+
catch (routeError) {
|
|
325
|
+
await server.close();
|
|
326
|
+
throw routeError;
|
|
327
|
+
}
|
|
328
|
+
if (proxied) {
|
|
329
|
+
publicUrl = DEFAULT_DESK_ORIGIN;
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
await server.close();
|
|
333
|
+
publicUrl = directPublicUrl(FALLBACK_DESK_PORT);
|
|
334
|
+
server = await startServer({
|
|
335
|
+
catalog,
|
|
336
|
+
host: "127.0.0.1",
|
|
337
|
+
port: FALLBACK_DESK_PORT,
|
|
338
|
+
token,
|
|
339
|
+
publicUrl,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
}
|
|
305
343
|
const descriptor = descriptorForServer(server);
|
|
306
344
|
const descriptorPath = daemonDescriptorPath(statePath);
|
|
307
345
|
try {
|
|
@@ -424,7 +462,16 @@ async function runDaemon(statePath, args, stdout, options) {
|
|
|
424
462
|
throw new UsageError("daemon action must be start, status, stop, install, or uninstall");
|
|
425
463
|
}
|
|
426
464
|
function daemonWebUrl(connection) {
|
|
427
|
-
|
|
465
|
+
const publicUrl = connection.descriptor.publicUrl ??
|
|
466
|
+
directPublicUrl(connection.descriptor.port);
|
|
467
|
+
return `${publicUrl}/?token=${encodeURIComponent(connection.descriptor.token)}`;
|
|
468
|
+
}
|
|
469
|
+
function shouldTryFallback(error, configuration) {
|
|
470
|
+
return (!configuration.explicitPort &&
|
|
471
|
+
!configuration.explicitPublicUrl &&
|
|
472
|
+
error instanceof Error &&
|
|
473
|
+
"code" in error &&
|
|
474
|
+
(error.code === "EADDRINUSE" || error.code === "EACCES"));
|
|
428
475
|
}
|
|
429
476
|
function directPublicUrl(port) {
|
|
430
477
|
return port === DEFAULT_DESK_PORT
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon-state.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeskApiClient } from "./api-client.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type RunningDeskServer } from "./server.js";
|
|
3
3
|
export declare const DESK_PROTOCOL_VERSION = 1;
|
|
4
4
|
export interface DaemonDescriptor {
|
|
5
5
|
protocolVersion: number;
|
|
@@ -8,6 +8,7 @@ export interface DaemonDescriptor {
|
|
|
8
8
|
port: number;
|
|
9
9
|
token: string;
|
|
10
10
|
startedAt: string;
|
|
11
|
+
publicUrl?: string;
|
|
11
12
|
}
|
|
12
13
|
export interface DaemonConnection {
|
|
13
14
|
client: DeskApiClient;
|
package/dist/daemon-state.js
CHANGED
|
@@ -4,6 +4,7 @@ import { chmod, lstat, mkdir, open, rename, unlink, } from "node:fs/promises";
|
|
|
4
4
|
import { basename, dirname, join, resolve } from "node:path";
|
|
5
5
|
import { DeskApiClient } from "./api-client.js";
|
|
6
6
|
import { syncDirectory } from "./fs-durability.js";
|
|
7
|
+
import { normalizePublicUrl } from "./server.js";
|
|
7
8
|
export const DESK_PROTOCOL_VERSION = 1;
|
|
8
9
|
const MAX_DESCRIPTOR_BYTES = 8 * 1024;
|
|
9
10
|
const LOOPBACK_HOSTS = new Set(["127.0.0.1", "::1", "localhost"]);
|
|
@@ -11,6 +12,7 @@ export function daemonDescriptorPath(statePath) {
|
|
|
11
12
|
return join(dirname(resolve(statePath)), "daemon.json");
|
|
12
13
|
}
|
|
13
14
|
export function descriptorForServer(server) {
|
|
15
|
+
const publicUrl = safeServerPublicUrl(server.webUrl);
|
|
14
16
|
return {
|
|
15
17
|
protocolVersion: DESK_PROTOCOL_VERSION,
|
|
16
18
|
pid: process.pid,
|
|
@@ -18,6 +20,7 @@ export function descriptorForServer(server) {
|
|
|
18
20
|
port: server.port,
|
|
19
21
|
token: server.token,
|
|
20
22
|
startedAt: new Date().toISOString(),
|
|
23
|
+
...(publicUrl === undefined ? {} : { publicUrl }),
|
|
21
24
|
};
|
|
22
25
|
}
|
|
23
26
|
export async function writeDaemonDescriptor(path, descriptor) {
|
|
@@ -161,7 +164,22 @@ function validateDaemonDescriptor(value) {
|
|
|
161
164
|
}
|
|
162
165
|
}
|
|
163
166
|
function isDaemonDescriptor(value) {
|
|
164
|
-
if (!isRecord(value)
|
|
167
|
+
if (!isRecord(value)) {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
const keys = Object.keys(value);
|
|
171
|
+
const allowed = new Set([
|
|
172
|
+
"protocolVersion",
|
|
173
|
+
"pid",
|
|
174
|
+
"host",
|
|
175
|
+
"port",
|
|
176
|
+
"token",
|
|
177
|
+
"startedAt",
|
|
178
|
+
"publicUrl",
|
|
179
|
+
]);
|
|
180
|
+
if (keys.length < 6 ||
|
|
181
|
+
keys.length > 7 ||
|
|
182
|
+
keys.some((key) => !allowed.has(key))) {
|
|
165
183
|
return false;
|
|
166
184
|
}
|
|
167
185
|
return (value.protocolVersion === DESK_PROTOCOL_VERSION &&
|
|
@@ -177,7 +195,28 @@ function isDaemonDescriptor(value) {
|
|
|
177
195
|
typeof value.token === "string" &&
|
|
178
196
|
value.token.length >= 8 &&
|
|
179
197
|
typeof value.startedAt === "string" &&
|
|
180
|
-
!Number.isNaN(Date.parse(value.startedAt))
|
|
198
|
+
!Number.isNaN(Date.parse(value.startedAt)) &&
|
|
199
|
+
(value.publicUrl === undefined || isSafePublicUrl(value.publicUrl)));
|
|
200
|
+
}
|
|
201
|
+
function isSafePublicUrl(value) {
|
|
202
|
+
if (typeof value !== "string") {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
return normalizePublicUrl(value) === value;
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function safeServerPublicUrl(webUrl) {
|
|
213
|
+
try {
|
|
214
|
+
const origin = new URL(webUrl).origin;
|
|
215
|
+
return isSafePublicUrl(origin) ? origin : undefined;
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return undefined;
|
|
219
|
+
}
|
|
181
220
|
}
|
|
182
221
|
async function assertReplaceable(path) {
|
|
183
222
|
try {
|
|
@@ -199,7 +238,8 @@ function sameDescriptor(left, right) {
|
|
|
199
238
|
left.host === right.host &&
|
|
200
239
|
left.port === right.port &&
|
|
201
240
|
left.token === right.token &&
|
|
202
|
-
left.startedAt === right.startedAt
|
|
241
|
+
left.startedAt === right.startedAt &&
|
|
242
|
+
left.publicUrl === right.publicUrl);
|
|
203
243
|
}
|
|
204
244
|
async function unlinkIfPresent(path) {
|
|
205
245
|
try {
|
package/dist/daemon-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-state.js","sourceRoot":"","sources":["../src/daemon-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,GACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon-state.js","sourceRoot":"","sources":["../src/daemon-state.ts"],"names":[],"mappings":"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"}
|
package/dist/service-config.d.ts
CHANGED
package/dist/service-config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-config.js","sourceRoot":"","sources":["../src/service-config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"service-config.js","sourceRoot":"","sources":["../src/service-config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface CommandResult {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
}
|
|
5
|
+
export type CommandRunner = (command: string, args: readonly string[]) => Promise<CommandResult>;
|
|
6
|
+
export interface TraefikRouteOptions {
|
|
7
|
+
platform?: NodeJS.Platform;
|
|
8
|
+
runCommand?: CommandRunner;
|
|
9
|
+
}
|
|
10
|
+
export declare function ensureTraefikRoute(options?: TraefikRouteOptions): Promise<boolean>;
|
|
11
|
+
export declare function dockerCommandCandidates(platform: NodeJS.Platform): readonly string[];
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { FALLBACK_DESK_PORT } from "./service-config.js";
|
|
3
|
+
const ROUTE_CONTAINER = "mdmaid-desk-traefik-route";
|
|
4
|
+
const ROUTE_IMAGE = "caddy:2-alpine";
|
|
5
|
+
const ROUTER_RULE = "Host(`mdmaid.desk.localhost`)";
|
|
6
|
+
export async function ensureTraefikRoute(options = {}) {
|
|
7
|
+
if ((options.platform ?? process.platform) !== "darwin") {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
const runCommand = options.runCommand ?? run;
|
|
11
|
+
try {
|
|
12
|
+
const ids = splitLines((await runCommand("docker", [
|
|
13
|
+
"ps",
|
|
14
|
+
"--filter",
|
|
15
|
+
"publish=80",
|
|
16
|
+
"--format",
|
|
17
|
+
"{{.ID}}",
|
|
18
|
+
])).stdout);
|
|
19
|
+
for (const id of ids) {
|
|
20
|
+
const owner = await inspectContainer(runCommand, id);
|
|
21
|
+
const network = traefikNetwork(owner);
|
|
22
|
+
if (network === undefined) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
return await ensureRouteContainer(runCommand, network);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
async function ensureRouteContainer(runCommand, network) {
|
|
34
|
+
let existing;
|
|
35
|
+
try {
|
|
36
|
+
existing = await inspectContainer(runCommand, ROUTE_CONTAINER);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
existing = undefined;
|
|
40
|
+
}
|
|
41
|
+
if (existing !== undefined) {
|
|
42
|
+
if (!isManagedRoute(existing, network)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (!existing.stateRunning) {
|
|
46
|
+
await runCommand("docker", ["start", ROUTE_CONTAINER]);
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
await runCommand("docker", [
|
|
51
|
+
"run",
|
|
52
|
+
"--detach",
|
|
53
|
+
"--name",
|
|
54
|
+
ROUTE_CONTAINER,
|
|
55
|
+
"--restart",
|
|
56
|
+
"unless-stopped",
|
|
57
|
+
"--network",
|
|
58
|
+
network,
|
|
59
|
+
"--label",
|
|
60
|
+
"dev.mdmaid.desk.role=traefik-route",
|
|
61
|
+
"--label",
|
|
62
|
+
"traefik.enable=true",
|
|
63
|
+
"--label",
|
|
64
|
+
`traefik.docker.network=${network}`,
|
|
65
|
+
"--label",
|
|
66
|
+
"traefik.http.routers.mdmaid-desk.entrypoints=web",
|
|
67
|
+
"--label",
|
|
68
|
+
`traefik.http.routers.mdmaid-desk.rule=${ROUTER_RULE}`,
|
|
69
|
+
"--label",
|
|
70
|
+
"traefik.http.routers.mdmaid-desk.service=mdmaid-desk",
|
|
71
|
+
"--label",
|
|
72
|
+
`traefik.http.services.mdmaid-desk.loadbalancer.server.port=${FALLBACK_DESK_PORT}`,
|
|
73
|
+
ROUTE_IMAGE,
|
|
74
|
+
"caddy",
|
|
75
|
+
"reverse-proxy",
|
|
76
|
+
"--from",
|
|
77
|
+
`:${FALLBACK_DESK_PORT}`,
|
|
78
|
+
"--to",
|
|
79
|
+
`host.docker.internal:${FALLBACK_DESK_PORT}`,
|
|
80
|
+
]);
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
async function inspectContainer(runCommand, id) {
|
|
84
|
+
const raw = (await runCommand("docker", ["inspect", id])).stdout;
|
|
85
|
+
const parsed = JSON.parse(raw);
|
|
86
|
+
if (!Array.isArray(parsed) || parsed.length !== 1 || !isRecord(parsed[0])) {
|
|
87
|
+
throw new Error("invalid Docker inspection response");
|
|
88
|
+
}
|
|
89
|
+
const value = parsed[0];
|
|
90
|
+
const config = value.Config;
|
|
91
|
+
const state = value.State;
|
|
92
|
+
const networkSettings = value.NetworkSettings;
|
|
93
|
+
if (!isRecord(config) || !isRecord(state) || !isRecord(networkSettings)) {
|
|
94
|
+
throw new Error("invalid Docker inspection response");
|
|
95
|
+
}
|
|
96
|
+
if (typeof config.Image !== "string") {
|
|
97
|
+
throw new Error("invalid Docker image metadata");
|
|
98
|
+
}
|
|
99
|
+
const command = stringArray(config.Cmd);
|
|
100
|
+
const labels = stringRecord(config.Labels);
|
|
101
|
+
const networksValue = networkSettings.Networks;
|
|
102
|
+
if (!isRecord(networksValue)) {
|
|
103
|
+
throw new Error("invalid Docker network metadata");
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
image: config.Image,
|
|
107
|
+
command,
|
|
108
|
+
labels,
|
|
109
|
+
networks: Object.keys(networksValue),
|
|
110
|
+
stateRunning: state.Running === true,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function traefikNetwork(container) {
|
|
114
|
+
const title = container.labels["org.opencontainers.image.title"];
|
|
115
|
+
const imageName = container.image.toLowerCase();
|
|
116
|
+
const isTraefik = title?.toLowerCase() === "traefik" ||
|
|
117
|
+
imageName.startsWith("traefik:") ||
|
|
118
|
+
imageName.includes("/traefik:");
|
|
119
|
+
if (!container.stateRunning || !isTraefik) {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
const dockerProvider = container.command.find((argument) => argument.startsWith("--providers.docker="));
|
|
123
|
+
if (dockerProvider !== "--providers.docker=true" ||
|
|
124
|
+
!container.command.includes("--entrypoints.web.address=:80")) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
const configured = container.command
|
|
128
|
+
.find((argument) => argument.startsWith("--providers.docker.network="))
|
|
129
|
+
?.slice("--providers.docker.network=".length);
|
|
130
|
+
if (configured) {
|
|
131
|
+
return container.networks.includes(configured) ? configured : undefined;
|
|
132
|
+
}
|
|
133
|
+
return container.networks[0];
|
|
134
|
+
}
|
|
135
|
+
function isManagedRoute(container, network) {
|
|
136
|
+
return (container.image === ROUTE_IMAGE &&
|
|
137
|
+
container.labels["dev.mdmaid.desk.role"] === "traefik-route" &&
|
|
138
|
+
container.labels["traefik.http.routers.mdmaid-desk.rule"] === ROUTER_RULE &&
|
|
139
|
+
container.labels["traefik.enable"] === "true" &&
|
|
140
|
+
container.labels["traefik.docker.network"] === network &&
|
|
141
|
+
container.labels["traefik.http.routers.mdmaid-desk.entrypoints"] === "web" &&
|
|
142
|
+
container.labels["traefik.http.routers.mdmaid-desk.service"] ===
|
|
143
|
+
"mdmaid-desk" &&
|
|
144
|
+
container.labels["traefik.http.services.mdmaid-desk.loadbalancer.server.port"] === String(FALLBACK_DESK_PORT) &&
|
|
145
|
+
container.networks.includes(network) &&
|
|
146
|
+
container.command[0] === "caddy" &&
|
|
147
|
+
container.command.includes("reverse-proxy") &&
|
|
148
|
+
container.command.includes(`host.docker.internal:${FALLBACK_DESK_PORT}`));
|
|
149
|
+
}
|
|
150
|
+
function stringArray(value) {
|
|
151
|
+
if (!Array.isArray(value) || !value.every((entry) => typeof entry === "string")) {
|
|
152
|
+
throw new Error("invalid Docker command metadata");
|
|
153
|
+
}
|
|
154
|
+
return value;
|
|
155
|
+
}
|
|
156
|
+
function stringRecord(value) {
|
|
157
|
+
if (!isRecord(value)) {
|
|
158
|
+
return {};
|
|
159
|
+
}
|
|
160
|
+
const result = {};
|
|
161
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
162
|
+
if (typeof entry === "string") {
|
|
163
|
+
result[key] = entry;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
function splitLines(value) {
|
|
169
|
+
return value
|
|
170
|
+
.split(/\r?\n/)
|
|
171
|
+
.map((line) => line.trim())
|
|
172
|
+
.filter((line) => line.length > 0);
|
|
173
|
+
}
|
|
174
|
+
function isRecord(value) {
|
|
175
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
176
|
+
}
|
|
177
|
+
export function dockerCommandCandidates(platform) {
|
|
178
|
+
return platform === "darwin"
|
|
179
|
+
? [
|
|
180
|
+
"docker",
|
|
181
|
+
"/usr/local/bin/docker",
|
|
182
|
+
"/opt/homebrew/bin/docker",
|
|
183
|
+
"/Applications/OrbStack.app/Contents/MacOS/xbin/docker",
|
|
184
|
+
]
|
|
185
|
+
: ["docker"];
|
|
186
|
+
}
|
|
187
|
+
async function run(command, args) {
|
|
188
|
+
const candidates = command === "docker"
|
|
189
|
+
? dockerCommandCandidates(process.platform)
|
|
190
|
+
: [command];
|
|
191
|
+
for (const candidate of candidates) {
|
|
192
|
+
try {
|
|
193
|
+
return await execute(candidate, args);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (candidate === candidates[candidates.length - 1] ||
|
|
197
|
+
!isNodeError(error) ||
|
|
198
|
+
error.code !== "ENOENT") {
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
throw new Error(`${command} executable not found`);
|
|
204
|
+
}
|
|
205
|
+
function execute(command, args) {
|
|
206
|
+
return new Promise((resolveRun, rejectRun) => {
|
|
207
|
+
execFile(command, [...args], { encoding: "utf8" }, (error, stdout, stderr) => {
|
|
208
|
+
if (error) {
|
|
209
|
+
rejectRun(error);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
resolveRun({ stdout, stderr });
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
function isNodeError(error) {
|
|
217
|
+
return error instanceof Error && "code" in error;
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=traefik-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traefik-route.js","sourceRoot":"","sources":["../src/traefik-route.ts"],"names":[],"mappings":"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"}
|
package/dist/user-service.js
CHANGED
|
@@ -7,18 +7,17 @@ import { basename, dirname, join, resolve } from "node:path";
|
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { stopDaemon } from "./daemon-lifecycle.js";
|
|
9
9
|
import { syncDirectory } from "./fs-durability.js";
|
|
10
|
-
import { DEFAULT_DESK_PORT } from "./service-config.js";
|
|
11
10
|
const SERVICE_LABEL = "dev.mdmaid.desk";
|
|
12
11
|
export function userServiceDefinition(options) {
|
|
13
|
-
const port = options.port ?? DEFAULT_DESK_PORT;
|
|
14
12
|
const arguments_ = [
|
|
15
13
|
options.execPath,
|
|
16
14
|
options.entrypoint,
|
|
17
15
|
"__daemon-serve",
|
|
18
16
|
"--state-path",
|
|
19
17
|
resolve(options.statePath),
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
...(options.port === undefined
|
|
19
|
+
? []
|
|
20
|
+
: ["--port", String(options.port)]),
|
|
22
21
|
];
|
|
23
22
|
if (options.platform === "darwin") {
|
|
24
23
|
const logPath = join(dirname(resolve(options.statePath)), "daemon.log");
|
package/dist/user-service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-service.js","sourceRoot":"","sources":["../src/user-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,GACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-service.js","sourceRoot":"","sources":["../src/user-service.ts"],"names":[],"mappings":"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"}
|