@fdcn/sourcefed 0.2.0 → 0.2.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/README.md +2 -2
- package/dist/chunk-7KHZCWGQ.js +5174 -0
- package/dist/chunk-EVSHVYPF.js +5167 -0
- package/dist/cli.js +20 -1
- package/dist/core.js +5 -0
- package/dist/daemon.js +20 -1
- package/dist/mcp.js +1 -1
- package/dist/opencode.js +4 -1
- package/dist/pi.js +25 -3
- package/dist/tui-compiled.mjs +146 -101
- package/dist.dts/packages/daemon/src/types/daemon.d.ts +2 -0
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -566,6 +566,11 @@ var MonitorService = class {
|
|
|
566
566
|
return this.transact((registry2) => {
|
|
567
567
|
const monitor = registry2.monitors.find((entry) => entry.id === id);
|
|
568
568
|
if (!monitor) return { error: `monitor ${id} was not found` };
|
|
569
|
+
const identity = monitorIdentity(monitor.target, monitor.source);
|
|
570
|
+
const duplicate = registry2.monitors.find(
|
|
571
|
+
(entry) => entry.id !== id && entry.enabled && monitorIdentity(entry.target, entry.source) === identity
|
|
572
|
+
);
|
|
573
|
+
if (duplicate) return { error: `monitor ${id} duplicates active monitor ${duplicate.id} for the same source` };
|
|
569
574
|
monitor.enabled = true;
|
|
570
575
|
monitor.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
571
576
|
return monitor;
|
|
@@ -4358,7 +4363,10 @@ function sourceForWebhookPath(pathname) {
|
|
|
4358
4363
|
return void 0;
|
|
4359
4364
|
}
|
|
4360
4365
|
async function serveHttp(options) {
|
|
4366
|
+
const active = /* @__PURE__ */ new Set();
|
|
4361
4367
|
const server = createServer((incoming, outgoing) => {
|
|
4368
|
+
active.add(outgoing);
|
|
4369
|
+
outgoing.on("close", () => active.delete(outgoing));
|
|
4362
4370
|
void handle(incoming, outgoing, options.handler);
|
|
4363
4371
|
});
|
|
4364
4372
|
server.requestTimeout = 0;
|
|
@@ -4377,6 +4385,10 @@ async function serveHttp(options) {
|
|
|
4377
4385
|
return {
|
|
4378
4386
|
port,
|
|
4379
4387
|
async stop() {
|
|
4388
|
+
for (const outgoing of active) {
|
|
4389
|
+
outgoing.destroy();
|
|
4390
|
+
}
|
|
4391
|
+
active.clear();
|
|
4380
4392
|
server.closeIdleConnections?.();
|
|
4381
4393
|
await new Promise((resolve) => {
|
|
4382
4394
|
server.close(() => resolve());
|
|
@@ -4722,9 +4734,16 @@ function monitorView(monitor) {
|
|
|
4722
4734
|
label: definition.label(monitor.source),
|
|
4723
4735
|
detail: definition.detail(monitor.source),
|
|
4724
4736
|
describe: definition.describe(monitor.source),
|
|
4725
|
-
unresponsive: definition.unresponsive(monitor)
|
|
4737
|
+
unresponsive: definition.unresponsive(monitor),
|
|
4738
|
+
lastPolledAt: cursorTime(monitor.cursors.__lastPolledAt ?? monitor.cursors.__lastAttemptAt),
|
|
4739
|
+
webhookHeartbeatAt: cursorTime(monitor.cursors.__webhookHeartbeatAt)
|
|
4726
4740
|
};
|
|
4727
4741
|
}
|
|
4742
|
+
function cursorTime(value) {
|
|
4743
|
+
const numeric = Number(value);
|
|
4744
|
+
if (!Number.isFinite(numeric) || numeric <= 0) return void 0;
|
|
4745
|
+
return new Date(numeric).toISOString();
|
|
4746
|
+
}
|
|
4728
4747
|
function logEntryView(queued) {
|
|
4729
4748
|
const definition = sourceDefinition(queued.event.source);
|
|
4730
4749
|
return {
|
package/dist/core.js
CHANGED
|
@@ -168,6 +168,11 @@ var MonitorService = class {
|
|
|
168
168
|
return this.transact((registry) => {
|
|
169
169
|
const monitor = registry.monitors.find((entry) => entry.id === id);
|
|
170
170
|
if (!monitor) return { error: `monitor ${id} was not found` };
|
|
171
|
+
const identity = monitorIdentity(monitor.target, monitor.source);
|
|
172
|
+
const duplicate = registry.monitors.find(
|
|
173
|
+
(entry) => entry.id !== id && entry.enabled && monitorIdentity(entry.target, entry.source) === identity
|
|
174
|
+
);
|
|
175
|
+
if (duplicate) return { error: `monitor ${id} duplicates active monitor ${duplicate.id} for the same source` };
|
|
171
176
|
monitor.enabled = true;
|
|
172
177
|
monitor.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
173
178
|
return monitor;
|
package/dist/daemon.js
CHANGED
|
@@ -541,6 +541,11 @@ var MonitorService = class {
|
|
|
541
541
|
return this.transact((registry) => {
|
|
542
542
|
const monitor = registry.monitors.find((entry) => entry.id === id);
|
|
543
543
|
if (!monitor) return { error: `monitor ${id} was not found` };
|
|
544
|
+
const identity = monitorIdentity(monitor.target, monitor.source);
|
|
545
|
+
const duplicate = registry.monitors.find(
|
|
546
|
+
(entry) => entry.id !== id && entry.enabled && monitorIdentity(entry.target, entry.source) === identity
|
|
547
|
+
);
|
|
548
|
+
if (duplicate) return { error: `monitor ${id} duplicates active monitor ${duplicate.id} for the same source` };
|
|
544
549
|
monitor.enabled = true;
|
|
545
550
|
monitor.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
546
551
|
return monitor;
|
|
@@ -4392,7 +4397,10 @@ function daemonEnvironment(host) {
|
|
|
4392
4397
|
import { createServer } from "node:http";
|
|
4393
4398
|
import { Readable } from "node:stream";
|
|
4394
4399
|
async function serveHttp(options) {
|
|
4400
|
+
const active = /* @__PURE__ */ new Set();
|
|
4395
4401
|
const server = createServer((incoming, outgoing) => {
|
|
4402
|
+
active.add(outgoing);
|
|
4403
|
+
outgoing.on("close", () => active.delete(outgoing));
|
|
4396
4404
|
void handle(incoming, outgoing, options.handler);
|
|
4397
4405
|
});
|
|
4398
4406
|
server.requestTimeout = 0;
|
|
@@ -4411,6 +4419,10 @@ async function serveHttp(options) {
|
|
|
4411
4419
|
return {
|
|
4412
4420
|
port,
|
|
4413
4421
|
async stop() {
|
|
4422
|
+
for (const outgoing of active) {
|
|
4423
|
+
outgoing.destroy();
|
|
4424
|
+
}
|
|
4425
|
+
active.clear();
|
|
4414
4426
|
server.closeIdleConnections?.();
|
|
4415
4427
|
await new Promise((resolve) => {
|
|
4416
4428
|
server.close(() => resolve());
|
|
@@ -4822,9 +4834,16 @@ function monitorView(monitor) {
|
|
|
4822
4834
|
label: definition.label(monitor.source),
|
|
4823
4835
|
detail: definition.detail(monitor.source),
|
|
4824
4836
|
describe: definition.describe(monitor.source),
|
|
4825
|
-
unresponsive: definition.unresponsive(monitor)
|
|
4837
|
+
unresponsive: definition.unresponsive(monitor),
|
|
4838
|
+
lastPolledAt: cursorTime(monitor.cursors.__lastPolledAt ?? monitor.cursors.__lastAttemptAt),
|
|
4839
|
+
webhookHeartbeatAt: cursorTime(monitor.cursors.__webhookHeartbeatAt)
|
|
4826
4840
|
};
|
|
4827
4841
|
}
|
|
4842
|
+
function cursorTime(value) {
|
|
4843
|
+
const numeric = Number(value);
|
|
4844
|
+
if (!Number.isFinite(numeric) || numeric <= 0) return void 0;
|
|
4845
|
+
return new Date(numeric).toISOString();
|
|
4846
|
+
}
|
|
4828
4847
|
function logEntryView(queued) {
|
|
4829
4848
|
const definition = sourceDefinition(queued.event.source);
|
|
4830
4849
|
return {
|
package/dist/mcp.js
CHANGED
package/dist/opencode.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
daemonCommand,
|
|
5
5
|
daemonEnvironment,
|
|
6
6
|
spawnLocalDaemon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-7KHZCWGQ.js";
|
|
8
8
|
import {
|
|
9
9
|
__export
|
|
10
10
|
} from "./chunk-MLKGABMK.js";
|
|
@@ -14,6 +14,7 @@ import { readFileSync } from "node:fs";
|
|
|
14
14
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
15
15
|
|
|
16
16
|
// adapters/opencode/bridge.ts
|
|
17
|
+
import { existsSync } from "node:fs";
|
|
17
18
|
import { fileURLToPath } from "node:url";
|
|
18
19
|
var activeBridge;
|
|
19
20
|
var OpenCodeBridge = class {
|
|
@@ -94,6 +95,8 @@ var OpenCodeBridge = class {
|
|
|
94
95
|
}
|
|
95
96
|
};
|
|
96
97
|
function cliEntry() {
|
|
98
|
+
const bundled = fileURLToPath(new URL("./cli.js", import.meta.url));
|
|
99
|
+
if (existsSync(bundled)) return bundled;
|
|
97
100
|
return fileURLToPath(import.meta.resolve("@sourcefed/cli"));
|
|
98
101
|
}
|
|
99
102
|
function setOpenCodeBridge(bridge) {
|
package/dist/pi.js
CHANGED
|
@@ -3,10 +3,11 @@ import {
|
|
|
3
3
|
daemonCommand,
|
|
4
4
|
daemonEnvironment,
|
|
5
5
|
spawnLocalDaemon
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7KHZCWGQ.js";
|
|
7
7
|
import "./chunk-MLKGABMK.js";
|
|
8
8
|
|
|
9
9
|
// adapters/pi/src/index.ts
|
|
10
|
+
import { existsSync } from "node:fs";
|
|
10
11
|
import { fileURLToPath } from "node:url";
|
|
11
12
|
import { Type } from "typebox";
|
|
12
13
|
|
|
@@ -38,13 +39,32 @@ function showSourcefedDialog(_tui, theme, done, title, lines) {
|
|
|
38
39
|
function monitorLines(monitors, theme) {
|
|
39
40
|
const active = monitors.filter((monitor) => monitor.enabled);
|
|
40
41
|
if (active.length === 0) return [{ text: theme.fg("dim", "No active monitors") }];
|
|
41
|
-
return active.
|
|
42
|
+
return active.flatMap((monitor) => {
|
|
42
43
|
const status = monitor.unresponsive ? theme.fg("error", "\u25CF") : theme.fg("success", "\u25CF");
|
|
43
44
|
const describe = theme.fg("text", monitor.describe);
|
|
44
45
|
const detail = monitor.detail ? theme.fg("muted", monitor.detail) : "";
|
|
45
|
-
|
|
46
|
+
const statusLabel = monitor.unresponsive ? "recovering connection" : "healthy";
|
|
47
|
+
const rows = [
|
|
48
|
+
["Name", monitor.name],
|
|
49
|
+
["Delivery", monitor.delivery],
|
|
50
|
+
["Poll interval", `${monitor.pollIntervalSec}s`],
|
|
51
|
+
["Created", formatTime(monitor.createdAt)],
|
|
52
|
+
["Updated", formatTime(monitor.updatedAt)],
|
|
53
|
+
["Last poll", formatTime(monitor.lastPolledAt)],
|
|
54
|
+
["Webhook heartbeat", formatTime(monitor.webhookHeartbeatAt)]
|
|
55
|
+
];
|
|
56
|
+
return [
|
|
57
|
+
{ text: `${status} ${monitor.icon} ${describe}${detail} [${statusLabel}]` },
|
|
58
|
+
...rows.map(([label, value]) => ({ text: theme.fg("muted", ` ${label}: ${value}`) }))
|
|
59
|
+
];
|
|
46
60
|
});
|
|
47
61
|
}
|
|
62
|
+
function formatTime(value) {
|
|
63
|
+
if (!value) return "never";
|
|
64
|
+
const date = new Date(value);
|
|
65
|
+
if (Number.isNaN(date.getTime())) return value;
|
|
66
|
+
return date.toLocaleString();
|
|
67
|
+
}
|
|
48
68
|
function logLines(logs, theme) {
|
|
49
69
|
if (logs.length === 0) return [{ text: theme.fg("dim", "No notifications sent yet") }];
|
|
50
70
|
return logs.flatMap((entry) => {
|
|
@@ -236,6 +256,8 @@ ${queued.event.body}` : ""}`,
|
|
|
236
256
|
}
|
|
237
257
|
}
|
|
238
258
|
function cliEntry() {
|
|
259
|
+
const bundled = fileURLToPath(new URL("./cli.js", import.meta.url));
|
|
260
|
+
if (existsSync(bundled)) return bundled;
|
|
239
261
|
return fileURLToPath(import.meta.resolve("@sourcefed/cli"));
|
|
240
262
|
}
|
|
241
263
|
function toolResult(result) {
|
package/dist/tui-compiled.mjs
CHANGED
|
@@ -3927,36 +3927,12 @@ function MonitorDialog(props) {
|
|
|
3927
3927
|
_$setProp2(_el$1, "scrollY", true);
|
|
3928
3928
|
_$setProp2(_el$10, "flexDirection", "column");
|
|
3929
3929
|
_$setProp2(_el$10, "width", "100%");
|
|
3930
|
-
_$insert2(_el$10, () => active.map((monitor) => (
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
_$setProp2(_el$11, "width", "100%");
|
|
3937
|
-
_$setProp2(_el$11, "minWidth", 0);
|
|
3938
|
-
_$insertNode2(_el$12, _$createTextNode2(`\u25CF`));
|
|
3939
|
-
_$insertNode2(_el$14, _el$15);
|
|
3940
|
-
_$insertNode2(_el$14, _el$16);
|
|
3941
|
-
_$insert2(_el$14, () => monitor.icon, _el$16);
|
|
3942
|
-
_$setProp2(_el$17, "flexGrow", 1);
|
|
3943
|
-
_$setProp2(_el$17, "flexShrink", 1);
|
|
3944
|
-
_$setProp2(_el$17, "minWidth", 0);
|
|
3945
|
-
_$setProp2(_el$17, "truncate", true);
|
|
3946
|
-
_$insert2(_el$17, () => monitor.describe);
|
|
3947
|
-
_$effect2((_p$) => {
|
|
3948
|
-
var _v$3 = monitor.unresponsive ? theme().error : theme().success, _v$4 = theme().text, _v$5 = theme().text;
|
|
3949
|
-
_v$3 !== _p$.e && (_p$.e = _$setProp2(_el$12, "fg", _v$3, _p$.e));
|
|
3950
|
-
_v$4 !== _p$.t && (_p$.t = _$setProp2(_el$14, "fg", _v$4, _p$.t));
|
|
3951
|
-
_v$5 !== _p$.a && (_p$.a = _$setProp2(_el$17, "fg", _v$5, _p$.a));
|
|
3952
|
-
return _p$;
|
|
3953
|
-
}, {
|
|
3954
|
-
e: void 0,
|
|
3955
|
-
t: void 0,
|
|
3956
|
-
a: void 0
|
|
3957
|
-
});
|
|
3958
|
-
return _el$11;
|
|
3959
|
-
})()));
|
|
3930
|
+
_$insert2(_el$10, () => active.map((monitor) => _$createComponent2(MonitorCard, {
|
|
3931
|
+
monitor,
|
|
3932
|
+
get theme() {
|
|
3933
|
+
return theme();
|
|
3934
|
+
}
|
|
3935
|
+
})));
|
|
3960
3936
|
return _el$1;
|
|
3961
3937
|
})();
|
|
3962
3938
|
},
|
|
@@ -3979,111 +3955,180 @@ function MonitorDialog(props) {
|
|
|
3979
3955
|
return _el$;
|
|
3980
3956
|
})();
|
|
3981
3957
|
}
|
|
3958
|
+
function MonitorCard(props) {
|
|
3959
|
+
const monitor = props.monitor;
|
|
3960
|
+
const theme = props.theme;
|
|
3961
|
+
const status = monitor.unresponsive ? theme.error : monitor.enabled ? theme.success : theme.textMuted;
|
|
3962
|
+
const statusLabel = !monitor.enabled ? "stopped" : monitor.unresponsive ? "recovering connection" : "healthy";
|
|
3963
|
+
const rows = [["Delivery", monitor.delivery], ["Poll interval", `${monitor.pollIntervalSec}s`], ["Created", formatTime(monitor.createdAt)], ["Updated", formatTime(monitor.updatedAt)], ["Last poll", formatTime(monitor.lastPolledAt)], ["Webhook heartbeat", formatTime(monitor.webhookHeartbeatAt)]];
|
|
3964
|
+
return (() => {
|
|
3965
|
+
var _el$11 = _$createElement2("box"), _el$12 = _$createElement2("box"), _el$13 = _$createElement2("text"), _el$15 = _$createElement2("text"), _el$16 = _$createTextNode2(` `), _el$17 = _$createTextNode2(` `), _el$18 = _$createElement2("text"), _el$19 = _$createTextNode2(` [`), _el$20 = _$createTextNode2(`]`);
|
|
3966
|
+
_$insertNode2(_el$11, _el$12);
|
|
3967
|
+
_$setProp2(_el$11, "flexDirection", "column");
|
|
3968
|
+
_$setProp2(_el$11, "width", "100%");
|
|
3969
|
+
_$setProp2(_el$11, "minWidth", 0);
|
|
3970
|
+
_$setProp2(_el$11, "marginBottom", 1);
|
|
3971
|
+
_$insertNode2(_el$12, _el$13);
|
|
3972
|
+
_$insertNode2(_el$12, _el$15);
|
|
3973
|
+
_$insertNode2(_el$12, _el$18);
|
|
3974
|
+
_$setProp2(_el$12, "flexDirection", "row");
|
|
3975
|
+
_$setProp2(_el$12, "width", "100%");
|
|
3976
|
+
_$setProp2(_el$12, "minWidth", 0);
|
|
3977
|
+
_$insertNode2(_el$13, _$createTextNode2(`\u25CF`));
|
|
3978
|
+
_$setProp2(_el$13, "fg", status);
|
|
3979
|
+
_$insertNode2(_el$15, _el$16);
|
|
3980
|
+
_$insertNode2(_el$15, _el$17);
|
|
3981
|
+
_$insert2(_el$15, () => monitor.icon, _el$17);
|
|
3982
|
+
_$insert2(_el$15, () => monitor.describe, null);
|
|
3983
|
+
_$insertNode2(_el$18, _el$19);
|
|
3984
|
+
_$insertNode2(_el$18, _el$20);
|
|
3985
|
+
_$setProp2(_el$18, "fg", status);
|
|
3986
|
+
_$setProp2(_el$18, "flexGrow", 1);
|
|
3987
|
+
_$setProp2(_el$18, "flexShrink", 1);
|
|
3988
|
+
_$setProp2(_el$18, "minWidth", 0);
|
|
3989
|
+
_$setProp2(_el$18, "truncate", true);
|
|
3990
|
+
_$insert2(_el$18, statusLabel, _el$20);
|
|
3991
|
+
_$insert2(_el$11, () => rows.map(([label, value]) => (() => {
|
|
3992
|
+
var _el$21 = _$createElement2("box"), _el$22 = _$createElement2("text"), _el$23 = _$createTextNode2(`: `), _el$24 = _$createElement2("text");
|
|
3993
|
+
_$insertNode2(_el$21, _el$22);
|
|
3994
|
+
_$insertNode2(_el$21, _el$24);
|
|
3995
|
+
_$setProp2(_el$21, "flexDirection", "row");
|
|
3996
|
+
_$setProp2(_el$21, "width", "100%");
|
|
3997
|
+
_$setProp2(_el$21, "minWidth", 0);
|
|
3998
|
+
_$insertNode2(_el$22, _el$23);
|
|
3999
|
+
_$setProp2(_el$22, "flexShrink", 0);
|
|
4000
|
+
_$insert2(_el$22, label, _el$23);
|
|
4001
|
+
_$setProp2(_el$24, "flexGrow", 1);
|
|
4002
|
+
_$setProp2(_el$24, "flexShrink", 1);
|
|
4003
|
+
_$setProp2(_el$24, "minWidth", 0);
|
|
4004
|
+
_$setProp2(_el$24, "truncate", true);
|
|
4005
|
+
_$insert2(_el$24, value);
|
|
4006
|
+
_$effect2((_p$) => {
|
|
4007
|
+
var _v$3 = theme.textMuted, _v$4 = theme.text;
|
|
4008
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp2(_el$22, "fg", _v$3, _p$.e));
|
|
4009
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp2(_el$24, "fg", _v$4, _p$.t));
|
|
4010
|
+
return _p$;
|
|
4011
|
+
}, {
|
|
4012
|
+
e: void 0,
|
|
4013
|
+
t: void 0
|
|
4014
|
+
});
|
|
4015
|
+
return _el$21;
|
|
4016
|
+
})()), null);
|
|
4017
|
+
_$effect2((_$p) => _$setProp2(_el$15, "fg", theme.text, _$p));
|
|
4018
|
+
return _el$11;
|
|
4019
|
+
})();
|
|
4020
|
+
}
|
|
4021
|
+
function formatTime(value) {
|
|
4022
|
+
if (!value) return "never";
|
|
4023
|
+
const date = new Date(value);
|
|
4024
|
+
if (Number.isNaN(date.getTime())) return value;
|
|
4025
|
+
return date.toLocaleString();
|
|
4026
|
+
}
|
|
3982
4027
|
function LogsDialog(props) {
|
|
3983
4028
|
const theme = createMemo2(() => props.api.theme.current);
|
|
3984
4029
|
const maxListRows = Math.max(6, Math.floor(props.api.renderer.height * 0.45));
|
|
3985
4030
|
return (() => {
|
|
3986
|
-
var _el$
|
|
3987
|
-
_$insertNode2(_el$
|
|
3988
|
-
_$setProp2(_el$
|
|
3989
|
-
_$setProp2(_el$
|
|
3990
|
-
_$setProp2(_el$
|
|
3991
|
-
_$setProp2(_el$
|
|
3992
|
-
_$insertNode2(_el$
|
|
3993
|
-
_$insertNode2(_el$
|
|
3994
|
-
_$insertNode2(_el$
|
|
3995
|
-
_$setProp2(_el$
|
|
3996
|
-
_$setProp2(_el$
|
|
3997
|
-
_$setProp2(_el$
|
|
3998
|
-
_$insertNode2(_el$
|
|
3999
|
-
_$insertNode2(_el$
|
|
4000
|
-
_$setProp2(_el$
|
|
4001
|
-
_$insert2(_el$
|
|
4002
|
-
_$setProp2(_el$
|
|
4003
|
-
_$insertNode2(_el$
|
|
4004
|
-
_$insert2(_el$
|
|
4031
|
+
var _el$25 = _$createElement2("box"), _el$26 = _$createElement2("box"), _el$27 = _$createElement2("text"), _el$28 = _$createTextNode2(`Sourcefed notifications (`), _el$29 = _$createTextNode2(`)`), _el$30 = _$createElement2("box"), _el$31 = _$createElement2("text");
|
|
4032
|
+
_$insertNode2(_el$25, _el$26);
|
|
4033
|
+
_$setProp2(_el$25, "flexDirection", "column");
|
|
4034
|
+
_$setProp2(_el$25, "width", "100%");
|
|
4035
|
+
_$setProp2(_el$25, "paddingX", 2);
|
|
4036
|
+
_$setProp2(_el$25, "paddingY", 1);
|
|
4037
|
+
_$insertNode2(_el$26, _el$27);
|
|
4038
|
+
_$insertNode2(_el$26, _el$30);
|
|
4039
|
+
_$insertNode2(_el$26, _el$31);
|
|
4040
|
+
_$setProp2(_el$26, "flexDirection", "row");
|
|
4041
|
+
_$setProp2(_el$26, "width", "100%");
|
|
4042
|
+
_$setProp2(_el$26, "minWidth", 0);
|
|
4043
|
+
_$insertNode2(_el$27, _el$28);
|
|
4044
|
+
_$insertNode2(_el$27, _el$29);
|
|
4045
|
+
_$setProp2(_el$27, "attributes", 1);
|
|
4046
|
+
_$insert2(_el$27, () => props.logs.length, _el$29);
|
|
4047
|
+
_$setProp2(_el$30, "flexGrow", 1);
|
|
4048
|
+
_$insertNode2(_el$31, _$createTextNode2(`esc`));
|
|
4049
|
+
_$insert2(_el$25, _$createComponent2(Show2, {
|
|
4005
4050
|
get when() {
|
|
4006
4051
|
return props.logs.length > 0;
|
|
4007
4052
|
},
|
|
4008
4053
|
get fallback() {
|
|
4009
4054
|
return (() => {
|
|
4010
|
-
var _el$
|
|
4011
|
-
_$insertNode2(_el$
|
|
4012
|
-
_$effect2((_$p) => _$setProp2(_el$
|
|
4013
|
-
return _el$
|
|
4055
|
+
var _el$35 = _$createElement2("text");
|
|
4056
|
+
_$insertNode2(_el$35, _$createTextNode2(`No notifications sent yet`));
|
|
4057
|
+
_$effect2((_$p) => _$setProp2(_el$35, "fg", theme().textMuted, _$p));
|
|
4058
|
+
return _el$35;
|
|
4014
4059
|
})();
|
|
4015
4060
|
},
|
|
4016
4061
|
get children() {
|
|
4017
|
-
var _el$
|
|
4018
|
-
_$insertNode2(_el$
|
|
4019
|
-
_$setProp2(_el$
|
|
4020
|
-
_$setProp2(_el$
|
|
4021
|
-
_$setProp2(_el$
|
|
4022
|
-
_$setProp2(_el$
|
|
4023
|
-
_$setProp2(_el$
|
|
4024
|
-
_$setProp2(_el$
|
|
4025
|
-
_$insert2(_el$
|
|
4026
|
-
var _el$
|
|
4027
|
-
_$insertNode2(_el$
|
|
4028
|
-
_$setProp2(_el$
|
|
4029
|
-
_$setProp2(_el$
|
|
4030
|
-
_$insertNode2(_el$
|
|
4031
|
-
_$insertNode2(_el$
|
|
4032
|
-
_$insertNode2(_el$
|
|
4033
|
-
_$setProp2(_el$
|
|
4034
|
-
_$setProp2(_el$
|
|
4035
|
-
_$setProp2(_el$
|
|
4036
|
-
_$insert2(_el$
|
|
4037
|
-
_$insertNode2(_el$
|
|
4038
|
-
_$setProp2(_el$
|
|
4039
|
-
_$setProp2(_el$
|
|
4040
|
-
_$insert2(_el$
|
|
4041
|
-
_$insertNode2(_el$
|
|
4042
|
-
_$insertNode2(_el$
|
|
4043
|
-
_$setProp2(_el$
|
|
4044
|
-
_$setProp2(_el$
|
|
4045
|
-
_$setProp2(_el$
|
|
4046
|
-
_$setProp2(_el$
|
|
4047
|
-
_$insert2(_el$
|
|
4048
|
-
_$insert2(_el$
|
|
4049
|
-
_$insert2(_el$
|
|
4062
|
+
var _el$33 = _$createElement2("scrollbox"), _el$34 = _$createElement2("box");
|
|
4063
|
+
_$insertNode2(_el$33, _el$34);
|
|
4064
|
+
_$setProp2(_el$33, "maxHeight", maxListRows);
|
|
4065
|
+
_$setProp2(_el$33, "scrollY", true);
|
|
4066
|
+
_$setProp2(_el$33, "stickyScroll", true);
|
|
4067
|
+
_$setProp2(_el$33, "stickyStart", "bottom");
|
|
4068
|
+
_$setProp2(_el$34, "flexDirection", "column");
|
|
4069
|
+
_$setProp2(_el$34, "width", "100%");
|
|
4070
|
+
_$insert2(_el$34, () => props.logs.map((entry) => (() => {
|
|
4071
|
+
var _el$37 = _$createElement2("box"), _el$38 = _$createElement2("box"), _el$39 = _$createElement2("text"), _el$40 = _$createElement2("text"), _el$41 = _$createTextNode2(` `), _el$42 = _$createElement2("text"), _el$43 = _$createTextNode2(` `), _el$44 = _$createTextNode2(` `);
|
|
4072
|
+
_$insertNode2(_el$37, _el$38);
|
|
4073
|
+
_$setProp2(_el$37, "flexDirection", "column");
|
|
4074
|
+
_$setProp2(_el$37, "width", "100%");
|
|
4075
|
+
_$insertNode2(_el$38, _el$39);
|
|
4076
|
+
_$insertNode2(_el$38, _el$40);
|
|
4077
|
+
_$insertNode2(_el$38, _el$42);
|
|
4078
|
+
_$setProp2(_el$38, "flexDirection", "row");
|
|
4079
|
+
_$setProp2(_el$38, "width", "100%");
|
|
4080
|
+
_$setProp2(_el$38, "minWidth", 0);
|
|
4081
|
+
_$insert2(_el$39, () => entry.actionable ? "\u25B6" : "\xB7");
|
|
4082
|
+
_$insertNode2(_el$40, _el$41);
|
|
4083
|
+
_$setProp2(_el$40, "flexShrink", 0);
|
|
4084
|
+
_$setProp2(_el$40, "minWidth", 0);
|
|
4085
|
+
_$insert2(_el$40, () => entry.icon, null);
|
|
4086
|
+
_$insertNode2(_el$42, _el$43);
|
|
4087
|
+
_$insertNode2(_el$42, _el$44);
|
|
4088
|
+
_$setProp2(_el$42, "flexGrow", 1);
|
|
4089
|
+
_$setProp2(_el$42, "flexShrink", 1);
|
|
4090
|
+
_$setProp2(_el$42, "minWidth", 0);
|
|
4091
|
+
_$setProp2(_el$42, "truncate", true);
|
|
4092
|
+
_$insert2(_el$42, () => new Date(entry.at).toLocaleString(), _el$44);
|
|
4093
|
+
_$insert2(_el$42, () => entry.summary, null);
|
|
4094
|
+
_$insert2(_el$37, _$createComponent2(Show2, {
|
|
4050
4095
|
get when() {
|
|
4051
4096
|
return entry.body;
|
|
4052
4097
|
},
|
|
4053
4098
|
get children() {
|
|
4054
|
-
var _el$
|
|
4055
|
-
_$insertNode2(_el$
|
|
4056
|
-
_$insert2(_el$
|
|
4057
|
-
_$effect2((_$p) => _$setProp2(_el$
|
|
4058
|
-
return _el$
|
|
4099
|
+
var _el$45 = _$createElement2("text"), _el$46 = _$createTextNode2(` `);
|
|
4100
|
+
_$insertNode2(_el$45, _el$46);
|
|
4101
|
+
_$insert2(_el$45, () => entry.body, null);
|
|
4102
|
+
_$effect2((_$p) => _$setProp2(_el$45, "fg", theme().textMuted, _$p));
|
|
4103
|
+
return _el$45;
|
|
4059
4104
|
}
|
|
4060
4105
|
}), null);
|
|
4061
4106
|
_$effect2((_p$) => {
|
|
4062
|
-
var _v$
|
|
4063
|
-
_v$
|
|
4064
|
-
_v$
|
|
4065
|
-
_v$
|
|
4107
|
+
var _v$7 = entry.actionable ? theme().warning : theme().textMuted, _v$8 = theme().text, _v$9 = theme().text;
|
|
4108
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp2(_el$39, "fg", _v$7, _p$.e));
|
|
4109
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp2(_el$40, "fg", _v$8, _p$.t));
|
|
4110
|
+
_v$9 !== _p$.a && (_p$.a = _$setProp2(_el$42, "fg", _v$9, _p$.a));
|
|
4066
4111
|
return _p$;
|
|
4067
4112
|
}, {
|
|
4068
4113
|
e: void 0,
|
|
4069
4114
|
t: void 0,
|
|
4070
4115
|
a: void 0
|
|
4071
4116
|
});
|
|
4072
|
-
return _el$
|
|
4117
|
+
return _el$37;
|
|
4073
4118
|
})()));
|
|
4074
|
-
return _el$
|
|
4119
|
+
return _el$33;
|
|
4075
4120
|
}
|
|
4076
4121
|
}), null);
|
|
4077
4122
|
_$effect2((_p$) => {
|
|
4078
|
-
var _v$
|
|
4079
|
-
_v$
|
|
4080
|
-
_v$
|
|
4123
|
+
var _v$5 = theme().text, _v$6 = theme().textMuted;
|
|
4124
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp2(_el$27, "fg", _v$5, _p$.e));
|
|
4125
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp2(_el$31, "fg", _v$6, _p$.t));
|
|
4081
4126
|
return _p$;
|
|
4082
4127
|
}, {
|
|
4083
4128
|
e: void 0,
|
|
4084
4129
|
t: void 0
|
|
4085
4130
|
});
|
|
4086
|
-
return _el$
|
|
4131
|
+
return _el$25;
|
|
4087
4132
|
})();
|
|
4088
4133
|
}
|
|
4089
4134
|
|