kastell 2.0.0 → 2.2.0
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/CHANGELOG.md +85 -0
- package/README.md +1 -1
- package/README.tr.md +1 -1
- package/dist/commands/audit.d.ts +3 -0
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +61 -32
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +25 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/explain.d.ts +6 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +28 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/fix.d.ts +2 -0
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +54 -15
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/fleet.d.ts.map +1 -1
- package/dist/commands/fleet.js +1 -0
- package/dist/commands/fleet.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +175 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/interactive.d.ts.map +1 -1
- package/dist/commands/interactive.js +59 -1
- package/dist/commands/interactive.js.map +1 -1
- package/dist/commands/plugin.d.ts +8 -0
- package/dist/commands/plugin.d.ts.map +1 -0
- package/dist/commands/plugin.js +87 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/regression.d.ts +5 -0
- package/dist/commands/regression.d.ts.map +1 -0
- package/dist/commands/regression.js +40 -0
- package/dist/commands/regression.js.map +1 -0
- package/dist/core/audit/checkIds.d.ts +516 -0
- package/dist/core/audit/checkIds.d.ts.map +1 -0
- package/dist/core/audit/checkIds.js +515 -0
- package/dist/core/audit/checkIds.js.map +1 -0
- package/dist/core/audit/checks/accounts.d.ts.map +1 -1
- package/dist/core/audit/checks/accounts.js +23 -22
- package/dist/core/audit/checks/accounts.js.map +1 -1
- package/dist/core/audit/checks/auth.d.ts.map +1 -1
- package/dist/core/audit/checks/auth.js +23 -22
- package/dist/core/audit/checks/auth.js.map +1 -1
- package/dist/core/audit/checks/backup.d.ts.map +1 -1
- package/dist/core/audit/checks/backup.js +9 -8
- package/dist/core/audit/checks/backup.js.map +1 -1
- package/dist/core/audit/checks/banners.d.ts.map +1 -1
- package/dist/core/audit/checks/banners.js +7 -6
- package/dist/core/audit/checks/banners.js.map +1 -1
- package/dist/core/audit/checks/boot.d.ts.map +1 -1
- package/dist/core/audit/checks/boot.js +12 -11
- package/dist/core/audit/checks/boot.js.map +1 -1
- package/dist/core/audit/checks/cloudmeta.d.ts.map +1 -1
- package/dist/core/audit/checks/cloudmeta.js +7 -6
- package/dist/core/audit/checks/cloudmeta.js.map +1 -1
- package/dist/core/audit/checks/crypto.d.ts +0 -5
- package/dist/core/audit/checks/crypto.d.ts.map +1 -1
- package/dist/core/audit/checks/crypto.js +20 -19
- package/dist/core/audit/checks/crypto.js.map +1 -1
- package/dist/core/audit/checks/ddos.d.ts.map +1 -1
- package/dist/core/audit/checks/ddos.js +9 -8
- package/dist/core/audit/checks/ddos.js.map +1 -1
- package/dist/core/audit/checks/dns.d.ts.map +1 -1
- package/dist/core/audit/checks/dns.js +9 -8
- package/dist/core/audit/checks/dns.js.map +1 -1
- package/dist/core/audit/checks/docker.d.ts.map +1 -1
- package/dist/core/audit/checks/docker.js +65 -64
- package/dist/core/audit/checks/docker.js.map +1 -1
- package/dist/core/audit/checks/fileintegrity.d.ts.map +1 -1
- package/dist/core/audit/checks/fileintegrity.js +11 -10
- package/dist/core/audit/checks/fileintegrity.js.map +1 -1
- package/dist/core/audit/checks/filesystem.d.ts.map +1 -1
- package/dist/core/audit/checks/filesystem.js +21 -20
- package/dist/core/audit/checks/filesystem.js.map +1 -1
- package/dist/core/audit/checks/firewall.d.ts.map +1 -1
- package/dist/core/audit/checks/firewall.js +18 -17
- package/dist/core/audit/checks/firewall.js.map +1 -1
- package/dist/core/audit/checks/httpHeaders.d.ts.map +1 -1
- package/dist/core/audit/checks/httpHeaders.js +7 -6
- package/dist/core/audit/checks/httpHeaders.js.map +1 -1
- package/dist/core/audit/checks/incidentready.d.ts.map +1 -1
- package/dist/core/audit/checks/incidentready.js +13 -12
- package/dist/core/audit/checks/incidentready.js.map +1 -1
- package/dist/core/audit/checks/kernel.d.ts.map +1 -1
- package/dist/core/audit/checks/kernel.js +32 -31
- package/dist/core/audit/checks/kernel.js.map +1 -1
- package/dist/core/audit/checks/logging.d.ts.map +1 -1
- package/dist/core/audit/checks/logging.js +21 -20
- package/dist/core/audit/checks/logging.js.map +1 -1
- package/dist/core/audit/checks/mac.d.ts.map +1 -1
- package/dist/core/audit/checks/mac.js +11 -10
- package/dist/core/audit/checks/mac.js.map +1 -1
- package/dist/core/audit/checks/malware.d.ts.map +1 -1
- package/dist/core/audit/checks/malware.js +12 -11
- package/dist/core/audit/checks/malware.js.map +1 -1
- package/dist/core/audit/checks/memory.d.ts.map +1 -1
- package/dist/core/audit/checks/memory.js +12 -11
- package/dist/core/audit/checks/memory.js.map +1 -1
- package/dist/core/audit/checks/network.d.ts.map +1 -1
- package/dist/core/audit/checks/network.js +22 -21
- package/dist/core/audit/checks/network.js.map +1 -1
- package/dist/core/audit/checks/nginx.d.ts.map +1 -1
- package/dist/core/audit/checks/nginx.js +17 -16
- package/dist/core/audit/checks/nginx.js.map +1 -1
- package/dist/core/audit/checks/resourcelimits.d.ts.map +1 -1
- package/dist/core/audit/checks/resourcelimits.js +9 -8
- package/dist/core/audit/checks/resourcelimits.js.map +1 -1
- package/dist/core/audit/checks/scheduling.d.ts.map +1 -1
- package/dist/core/audit/checks/scheduling.js +13 -12
- package/dist/core/audit/checks/scheduling.js.map +1 -1
- package/dist/core/audit/checks/secrets.d.ts.map +1 -1
- package/dist/core/audit/checks/secrets.js +16 -15
- package/dist/core/audit/checks/secrets.js.map +1 -1
- package/dist/core/audit/checks/services.d.ts.map +1 -1
- package/dist/core/audit/checks/services.js +26 -25
- package/dist/core/audit/checks/services.js.map +1 -1
- package/dist/core/audit/checks/ssh.d.ts.map +1 -1
- package/dist/core/audit/checks/ssh.js +23 -22
- package/dist/core/audit/checks/ssh.js.map +1 -1
- package/dist/core/audit/checks/supplychain.d.ts.map +1 -1
- package/dist/core/audit/checks/supplychain.js +13 -12
- package/dist/core/audit/checks/supplychain.js.map +1 -1
- package/dist/core/audit/checks/time.d.ts.map +1 -1
- package/dist/core/audit/checks/time.js +10 -9
- package/dist/core/audit/checks/time.js.map +1 -1
- package/dist/core/audit/checks/tls.d.ts.map +1 -1
- package/dist/core/audit/checks/tls.js +9 -8
- package/dist/core/audit/checks/tls.js.map +1 -1
- package/dist/core/audit/checks/updates.d.ts.map +1 -1
- package/dist/core/audit/checks/updates.js +12 -11
- package/dist/core/audit/checks/updates.js.map +1 -1
- package/dist/core/audit/compliance/categories/index.d.ts +3 -0
- package/dist/core/audit/compliance/categories/index.d.ts.map +1 -0
- package/dist/core/audit/compliance/categories/index.js +737 -0
- package/dist/core/audit/compliance/categories/index.js.map +1 -0
- package/dist/core/audit/compliance/helpers.d.ts +17 -0
- package/dist/core/audit/compliance/helpers.d.ts.map +1 -0
- package/dist/core/audit/compliance/helpers.js +40 -0
- package/dist/core/audit/compliance/helpers.js.map +1 -0
- package/dist/core/audit/compliance/mapper.d.ts +4 -16
- package/dist/core/audit/compliance/mapper.d.ts.map +1 -1
- package/dist/core/audit/compliance/mapper.js +3 -776
- package/dist/core/audit/compliance/mapper.js.map +1 -1
- package/dist/core/audit/diff.d.ts +12 -1
- package/dist/core/audit/diff.d.ts.map +1 -1
- package/dist/core/audit/diff.js +121 -0
- package/dist/core/audit/diff.js.map +1 -1
- package/dist/core/audit/explainCheck.d.ts +26 -0
- package/dist/core/audit/explainCheck.d.ts.map +1 -0
- package/dist/core/audit/explainCheck.js +165 -0
- package/dist/core/audit/explainCheck.js.map +1 -0
- package/dist/core/audit/fix-history.d.ts +16 -7
- package/dist/core/audit/fix-history.d.ts.map +1 -1
- package/dist/core/audit/fix-history.js +25 -2
- package/dist/core/audit/fix-history.js.map +1 -1
- package/dist/core/audit/fix.d.ts +21 -6
- package/dist/core/audit/fix.d.ts.map +1 -1
- package/dist/core/audit/fix.js +139 -49
- package/dist/core/audit/fix.js.map +1 -1
- package/dist/core/audit/history.d.ts.map +1 -1
- package/dist/core/audit/history.js +2 -1
- package/dist/core/audit/history.js.map +1 -1
- package/dist/core/audit/index.d.ts.map +1 -1
- package/dist/core/audit/index.js +3 -2
- package/dist/core/audit/index.js.map +1 -1
- package/dist/core/audit/listChecks.d.ts +7 -0
- package/dist/core/audit/listChecks.d.ts.map +1 -1
- package/dist/core/audit/listChecks.js +1 -1
- package/dist/core/audit/listChecks.js.map +1 -1
- package/dist/core/audit/regression.d.ts +15 -0
- package/dist/core/audit/regression.d.ts.map +1 -0
- package/dist/core/audit/regression.js +149 -0
- package/dist/core/audit/regression.js.map +1 -0
- package/dist/core/audit/snapshot.d.ts.map +1 -1
- package/dist/core/audit/snapshot.js +91 -29
- package/dist/core/audit/snapshot.js.map +1 -1
- package/dist/core/audit/types.d.ts +63 -1
- package/dist/core/audit/types.d.ts.map +1 -1
- package/dist/core/audit/watch.d.ts.map +1 -1
- package/dist/core/audit/watch.js +3 -2
- package/dist/core/audit/watch.js.map +1 -1
- package/dist/core/bot/handlers.d.ts.map +1 -1
- package/dist/core/bot/handlers.js +9 -18
- package/dist/core/bot/handlers.js.map +1 -1
- package/dist/core/completions.d.ts.map +1 -1
- package/dist/core/completions.js +24 -2
- package/dist/core/completions.js.map +1 -1
- package/dist/core/defaults.d.ts +4 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +34 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/doctor-fix.d.ts +1 -1
- package/dist/core/doctor-fix.d.ts.map +1 -1
- package/dist/core/doctor-fix.js +17 -2
- package/dist/core/doctor-fix.js.map +1 -1
- package/dist/core/doctor.d.ts +4 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +26 -2
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/firewall.d.ts +1 -4
- package/dist/core/firewall.d.ts.map +1 -1
- package/dist/core/firewall.js +19 -25
- package/dist/core/firewall.js.map +1 -1
- package/dist/core/fleet.d.ts +8 -0
- package/dist/core/fleet.d.ts.map +1 -1
- package/dist/core/fleet.js +49 -5
- package/dist/core/fleet.js.map +1 -1
- package/dist/core/manage.d.ts +9 -6
- package/dist/core/manage.d.ts.map +1 -1
- package/dist/core/manage.js +2 -1
- package/dist/core/manage.js.map +1 -1
- package/dist/core/notify.d.ts.map +1 -1
- package/dist/core/notify.js +2 -1
- package/dist/core/notify.js.map +1 -1
- package/dist/core/plugin.d.ts +23 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +107 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/core/scheduleManager.d.ts +2 -1
- package/dist/core/scheduleManager.d.ts.map +1 -1
- package/dist/core/scheduleManager.js +8 -5
- package/dist/core/scheduleManager.js.map +1 -1
- package/dist/core/status.d.ts +1 -0
- package/dist/core/status.d.ts.map +1 -1
- package/dist/core/status.js +20 -6
- package/dist/core/status.js.map +1 -1
- package/dist/index.js +65 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.js +5 -9
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +44 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/serverAudit.d.ts.map +1 -1
- package/dist/mcp/tools/serverAudit.js +15 -0
- package/dist/mcp/tools/serverAudit.js.map +1 -1
- package/dist/mcp/tools/serverCompare.d.ts +15 -0
- package/dist/mcp/tools/serverCompare.d.ts.map +1 -0
- package/dist/mcp/tools/serverCompare.js +43 -0
- package/dist/mcp/tools/serverCompare.js.map +1 -0
- package/dist/mcp/tools/serverDoctor.d.ts.map +1 -1
- package/dist/mcp/tools/serverDoctor.js +2 -1
- package/dist/mcp/tools/serverDoctor.js.map +1 -1
- package/dist/mcp/tools/serverExplain.d.ts +8 -0
- package/dist/mcp/tools/serverExplain.d.ts.map +1 -0
- package/dist/mcp/tools/serverExplain.js +14 -0
- package/dist/mcp/tools/serverExplain.js.map +1 -0
- package/dist/mcp/tools/serverFix.d.ts +2 -0
- package/dist/mcp/tools/serverFix.d.ts.map +1 -1
- package/dist/mcp/tools/serverFix.js +40 -2
- package/dist/mcp/tools/serverFix.js.map +1 -1
- package/dist/mcp/tools/serverFleet.d.ts +2 -0
- package/dist/mcp/tools/serverFleet.d.ts.map +1 -1
- package/dist/mcp/tools/serverFleet.js +10 -1
- package/dist/mcp/tools/serverFleet.js.map +1 -1
- package/dist/mcp/tools/serverManage.d.ts.map +1 -1
- package/dist/mcp/tools/serverManage.js +10 -9
- package/dist/mcp/tools/serverManage.js.map +1 -1
- package/dist/mcp/tools/serverPlugin.d.ts +12 -0
- package/dist/mcp/tools/serverPlugin.d.ts.map +1 -0
- package/dist/mcp/tools/serverPlugin.js +22 -0
- package/dist/mcp/tools/serverPlugin.js.map +1 -0
- package/dist/plugin/loader.d.ts +10 -0
- package/dist/plugin/loader.d.ts.map +1 -0
- package/dist/plugin/loader.js +88 -0
- package/dist/plugin/loader.js.map +1 -0
- package/dist/plugin/registry.d.ts +16 -0
- package/dist/plugin/registry.d.ts.map +1 -0
- package/dist/plugin/registry.js +99 -0
- package/dist/plugin/registry.js.map +1 -0
- package/dist/plugin/sdk/constants.d.ts +3 -0
- package/dist/plugin/sdk/constants.d.ts.map +1 -0
- package/dist/plugin/sdk/constants.js +3 -0
- package/dist/plugin/sdk/constants.js.map +1 -0
- package/dist/plugin/sdk/types.d.ts +29 -0
- package/dist/plugin/sdk/types.d.ts.map +1 -0
- package/dist/plugin/sdk/types.js +2 -0
- package/dist/plugin/sdk/types.js.map +1 -0
- package/dist/plugin/validate.d.ts +3 -0
- package/dist/plugin/validate.d.ts.map +1 -0
- package/dist/plugin/validate.js +31 -0
- package/dist/plugin/validate.js.map +1 -0
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +2 -1
- package/dist/providers/base.js.map +1 -1
- package/dist/types/index.d.ts +8 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/dates.d.ts +3 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/dates.js +10 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/errorMapper.d.ts.map +1 -1
- package/dist/utils/errorMapper.js +2 -1
- package/dist/utils/errorMapper.js.map +1 -1
- package/dist/utils/errors.d.ts +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +3 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/migration.d.ts.map +1 -1
- package/dist/utils/migration.js +2 -1
- package/dist/utils/migration.js.map +1 -1
- package/dist/utils/paths.d.ts +4 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +4 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/prompts.d.ts +6 -0
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +11 -0
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/{defaults.d.ts → providerConfig.d.ts} +1 -1
- package/dist/utils/providerConfig.d.ts.map +1 -0
- package/dist/utils/{defaults.js → providerConfig.js} +1 -1
- package/dist/utils/providerConfig.js.map +1 -0
- package/dist/utils/secureWrite.d.ts.map +1 -1
- package/dist/utils/secureWrite.js +2 -1
- package/dist/utils/secureWrite.js.map +1 -1
- package/dist/utils/version.d.ts +4 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +22 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/utils/yamlConfig.d.ts.map +1 -1
- package/dist/utils/yamlConfig.js +3 -2
- package/dist/utils/yamlConfig.js.map +1 -1
- package/package.json +3 -1
- package/dist/utils/defaults.d.ts.map +0 -1
- package/dist/utils/defaults.js.map +0 -1
|
@@ -3,27 +3,12 @@
|
|
|
3
3
|
* Registers /status, /audit, /health, /doctor, /help commands.
|
|
4
4
|
* All commands read local data only — zero SSH (D-07).
|
|
5
5
|
*/
|
|
6
|
-
import { readFileSync } from "fs";
|
|
7
|
-
import { join } from "path";
|
|
8
6
|
import { findServer, getServers } from "../../utils/config.js";
|
|
9
7
|
import { listSnapshots, loadSnapshot } from "../audit/snapshot.js";
|
|
10
8
|
import { getGuardStates } from "../guard.js";
|
|
11
|
-
import { loadMetricsHistory } from "../doctor.js";
|
|
9
|
+
import { loadMetricsHistory, DOCTOR_SEVERITY_WEIGHTS } from "../doctor.js";
|
|
10
|
+
import { KASTELL_VERSION } from "../../utils/version.js";
|
|
12
11
|
import { formatAuditMessage, formatStatusMessage, formatHealthMessage, formatDoctorMessage, } from "./formatter.js";
|
|
13
|
-
let cachedVersion = null;
|
|
14
|
-
function getVersion() {
|
|
15
|
-
if (cachedVersion !== null)
|
|
16
|
-
return cachedVersion;
|
|
17
|
-
try {
|
|
18
|
-
const pkg = JSON.parse(readFileSync(join(process.cwd(), "package.json"), "utf-8"));
|
|
19
|
-
cachedVersion = pkg.version;
|
|
20
|
-
return cachedVersion;
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
cachedVersion = "0.0.0";
|
|
24
|
-
return cachedVersion;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
12
|
/** Register all bot command handlers on the given Bot instance. */
|
|
28
13
|
export function registerHandlers(bot) {
|
|
29
14
|
// /audit <server> — D-06: server name mandatory
|
|
@@ -126,6 +111,7 @@ export function registerHandlers(bot) {
|
|
|
126
111
|
severity: "critical",
|
|
127
112
|
description: `Disk usage high: ${latest.diskPct}%`,
|
|
128
113
|
command: "df -h /",
|
|
114
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["critical"],
|
|
129
115
|
});
|
|
130
116
|
}
|
|
131
117
|
else if (latest.diskPct >= 80) {
|
|
@@ -134,6 +120,7 @@ export function registerHandlers(bot) {
|
|
|
134
120
|
severity: "warning",
|
|
135
121
|
description: `Disk usage: ${latest.diskPct}%`,
|
|
136
122
|
command: "df -h /",
|
|
123
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["warning"],
|
|
137
124
|
});
|
|
138
125
|
}
|
|
139
126
|
if (latest.ramPct >= 90) {
|
|
@@ -142,6 +129,7 @@ export function registerHandlers(bot) {
|
|
|
142
129
|
severity: "critical",
|
|
143
130
|
description: `RAM usage high: ${latest.ramPct}%`,
|
|
144
131
|
command: "free -h",
|
|
132
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["critical"],
|
|
145
133
|
});
|
|
146
134
|
}
|
|
147
135
|
else if (latest.ramPct >= 80) {
|
|
@@ -150,6 +138,7 @@ export function registerHandlers(bot) {
|
|
|
150
138
|
severity: "warning",
|
|
151
139
|
description: `RAM usage: ${latest.ramPct}%`,
|
|
152
140
|
command: "free -h",
|
|
141
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["warning"],
|
|
153
142
|
});
|
|
154
143
|
}
|
|
155
144
|
const loadPerCpu = latest.cpuLoad1 / (latest.ncpu || 1);
|
|
@@ -159,6 +148,7 @@ export function registerHandlers(bot) {
|
|
|
159
148
|
severity: "critical",
|
|
160
149
|
description: `CPU load high: ${latest.cpuLoad1} (${latest.ncpu} cores)`,
|
|
161
150
|
command: "uptime",
|
|
151
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["critical"],
|
|
162
152
|
});
|
|
163
153
|
}
|
|
164
154
|
else if (loadPerCpu >= 1) {
|
|
@@ -167,6 +157,7 @@ export function registerHandlers(bot) {
|
|
|
167
157
|
severity: "warning",
|
|
168
158
|
description: `CPU load: ${latest.cpuLoad1} (${latest.ncpu} cores)`,
|
|
169
159
|
command: "uptime",
|
|
160
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["warning"],
|
|
170
161
|
});
|
|
171
162
|
}
|
|
172
163
|
await ctx.reply(formatDoctorMessage(serverName, findings));
|
|
@@ -182,7 +173,7 @@ export function registerHandlers(bot) {
|
|
|
182
173
|
"/doctor <server> -- Doctor findings (cached)",
|
|
183
174
|
"/help -- This message",
|
|
184
175
|
"",
|
|
185
|
-
`Kastell v${
|
|
176
|
+
`Kastell v${KASTELL_VERSION} | 4 commands`,
|
|
186
177
|
];
|
|
187
178
|
await ctx.reply(lines.join("\n"));
|
|
188
179
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/core/bot/handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/core/bot/handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,gDAAgD;IAChD,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,CAAC,KAAK,CACb,qBAAqB,UAAU,oCAAoC,CACpE,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,CAAC,KAAK,CACb,6CAA6C,UAAU,EAAE,CAC1D,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,GAAG,CAAC,KAAK,CAAC,iDAAiD,GAAG,UAAU,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAC9D,CAAC;QACF,MAAM,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,CAAC,KAAK,CACb,qBAAqB,UAAU,oCAAoC,CACpE,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/D,MAAM,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,uDAAuD;IACvD,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAE9B,qDAAqD;QACrD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,CAAC,KAAK,CACb,qBAAqB,GAAG,oCAAoC,CAC7D,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtF,CAAC,CAAC,CACH,CAAC;QACF,KAAK,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK;gBAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,CAAC,KAAK,CACb,qBAAqB,UAAU,oCAAoC,CACpE,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,CAAC,KAAK,CACb,uCAAuC,UAAU,EAAE,CACpD,CAAC;YACF,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,WAAW;gBACf,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,oBAAoB,MAAM,CAAC,OAAO,GAAG;gBAClD,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,uBAAuB,CAAC,UAAU,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,WAAW;gBACf,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,eAAe,MAAM,CAAC,OAAO,GAAG;gBAC7C,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,uBAAuB,CAAC,SAAS,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,mBAAmB,MAAM,CAAC,MAAM,GAAG;gBAChD,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,uBAAuB,CAAC,UAAU,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,cAAc,MAAM,CAAC,MAAM,GAAG;gBAC3C,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,uBAAuB,CAAC,SAAS,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,kBAAkB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,SAAS;gBACvE,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,uBAAuB,CAAC,UAAU,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,aAAa,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,SAAS;gBAClE,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,uBAAuB,CAAC,SAAS,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,kDAAkD;IAClD,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG;YACZ,uBAAuB;YACvB,EAAE;YACF,qDAAqD;YACrD,gDAAgD;YAChD,iCAAiC;YACjC,8CAA8C;YAC9C,uBAAuB;YACvB,EAAE;YACF,YAAY,eAAe,eAAe;SAC3C,CAAC;QACF,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/core/completions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,uBAAuB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/core/completions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,uBAAuB,IAAI,MAAM,CAiKhD;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAoQ/C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAwNhD"}
|
package/dist/core/completions.js
CHANGED
|
@@ -12,7 +12,7 @@ _kastell() {
|
|
|
12
12
|
COMPREPLY=()
|
|
13
13
|
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
14
14
|
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
15
|
-
commands="init list status destroy config ssh update restart logs monitor health doctor firewall domain secure backup restore export import add remove maintain snapshot completions guard lock audit evidence fleet notify"
|
|
15
|
+
commands="init list status destroy config ssh update restart logs monitor health doctor firewall domain secure backup restore export import add remove maintain snapshot completions guard lock audit evidence fleet notify plugin"
|
|
16
16
|
|
|
17
17
|
# Subcommand completions
|
|
18
18
|
case "\${prev}" in
|
|
@@ -48,6 +48,10 @@ _kastell() {
|
|
|
48
48
|
COMPREPLY=( $(compgen -W "add test" -- "\${cur}") )
|
|
49
49
|
return 0
|
|
50
50
|
;;
|
|
51
|
+
plugin)
|
|
52
|
+
COMPREPLY=( $(compgen -W "install remove list validate --force --ver" -- "\${cur}") )
|
|
53
|
+
return 0
|
|
54
|
+
;;
|
|
51
55
|
esac
|
|
52
56
|
|
|
53
57
|
# Per-command option completions
|
|
@@ -199,6 +203,7 @@ _kastell() {
|
|
|
199
203
|
'evidence:Collect forensic evidence package from a server'
|
|
200
204
|
'fleet:Show health and security posture of all registered servers'
|
|
201
205
|
'notify:Manage notification channels'
|
|
206
|
+
'plugin:Manage kastell plugins'
|
|
202
207
|
)
|
|
203
208
|
|
|
204
209
|
_arguments -C \\
|
|
@@ -406,6 +411,14 @@ _kastell() {
|
|
|
406
411
|
'--webhook-url[Discord or Slack webhook URL]:url:' \\
|
|
407
412
|
'--force[Skip interactive prompts]'
|
|
408
413
|
;;
|
|
414
|
+
plugin)
|
|
415
|
+
local -a subcommands
|
|
416
|
+
subcommands=('install:Install a plugin from npm registry' 'remove:Remove an installed plugin' 'list:List installed plugins' 'validate:Validate plugin manifest and entry point')
|
|
417
|
+
_describe 'subcommand' subcommands
|
|
418
|
+
_arguments \\
|
|
419
|
+
'--ver[Specific version to install]:version:' \\
|
|
420
|
+
'--force[Skip confirmation prompt]'
|
|
421
|
+
;;
|
|
409
422
|
esac
|
|
410
423
|
;;
|
|
411
424
|
esac
|
|
@@ -463,6 +476,7 @@ complete -c kastell -n '__kastell_no_subcommand' -a 'audit' -d 'Run a security a
|
|
|
463
476
|
complete -c kastell -n '__kastell_no_subcommand' -a 'evidence' -d 'Collect forensic evidence'
|
|
464
477
|
complete -c kastell -n '__kastell_no_subcommand' -a 'fleet' -d 'Show fleet health and security'
|
|
465
478
|
complete -c kastell -n '__kastell_no_subcommand' -a 'notify' -d 'Manage notification channels'
|
|
479
|
+
complete -c kastell -n '__kastell_no_subcommand' -a 'plugin' -d 'Manage kastell plugins'
|
|
466
480
|
|
|
467
481
|
# init options
|
|
468
482
|
complete -c kastell -n '__kastell_using_subcommand init' -l provider -d 'Cloud provider'
|
|
@@ -619,6 +633,14 @@ complete -c kastell -n '__kastell_using_subcommand notify' -a 'add test'
|
|
|
619
633
|
complete -c kastell -n '__kastell_using_subcommand notify' -l bot-token -d 'Telegram bot token'
|
|
620
634
|
complete -c kastell -n '__kastell_using_subcommand notify' -l chat-id -d 'Telegram chat ID'
|
|
621
635
|
complete -c kastell -n '__kastell_using_subcommand notify' -l webhook-url -d 'Discord or Slack webhook URL'
|
|
622
|
-
complete -c kastell -n '__kastell_using_subcommand notify' -l force -d 'Skip interactive prompts'
|
|
636
|
+
complete -c kastell -n '__kastell_using_subcommand notify' -l force -d 'Skip interactive prompts'
|
|
637
|
+
|
|
638
|
+
# plugin subcommands and options
|
|
639
|
+
complete -c kastell -n '__kastell_using_subcommand plugin' -a 'install' -d 'Install a plugin from npm registry'
|
|
640
|
+
complete -c kastell -n '__kastell_using_subcommand plugin' -a 'remove' -d 'Remove an installed plugin'
|
|
641
|
+
complete -c kastell -n '__kastell_using_subcommand plugin' -a 'list' -d 'List installed plugins'
|
|
642
|
+
complete -c kastell -n '__kastell_using_subcommand plugin' -a 'validate' -d 'Validate plugin manifest'
|
|
643
|
+
complete -c kastell -n '__kastell_using_subcommand plugin' -l force -d 'Skip confirmation prompt'
|
|
644
|
+
complete -c kastell -n '__kastell_using_subcommand plugin' -l ver -d 'Specific version to install' -r`;
|
|
623
645
|
}
|
|
624
646
|
//# sourceMappingURL=completions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/core/completions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,uBAAuB;IACrC,OAAO
|
|
1
|
+
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/core/completions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,uBAAuB;IACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA+JoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAkQA,CAAC;AACV,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sGAsN6F,CAAC;AACvG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/core/defaults.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWxD,wBAAgB,YAAY,IAAI,cAAc,CAe7C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAGzD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { KASTELL_DIR } from "../utils/paths.js";
|
|
5
|
+
import { secureMkdirSync, secureWriteFileSync } from "../utils/secureWrite.js";
|
|
6
|
+
const DEFAULTS_FILE = join(KASTELL_DIR, "defaults.json");
|
|
7
|
+
const DefaultsSchema = z.object({
|
|
8
|
+
threshold: z.number().int().min(0).max(100).optional(),
|
|
9
|
+
framework: z
|
|
10
|
+
.enum(["cis-level1", "cis-level2", "pci-dss", "hipaa"])
|
|
11
|
+
.optional(),
|
|
12
|
+
}).strip();
|
|
13
|
+
export function loadDefaults() {
|
|
14
|
+
let raw;
|
|
15
|
+
try {
|
|
16
|
+
raw = readFileSync(DEFAULTS_FILE, "utf-8");
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const parsed = JSON.parse(raw);
|
|
23
|
+
const result = DefaultsSchema.safeParse(parsed);
|
|
24
|
+
return result.success ? result.data : {};
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function saveDefaults(config) {
|
|
31
|
+
secureMkdirSync(KASTELL_DIR, { recursive: true });
|
|
32
|
+
secureWriteFileSync(DEFAULTS_FILE, JSON.stringify(config, null, 2));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/core/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAEzD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtD,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACtD,QAAQ,EAAE;CACd,CAAC,CAAC,KAAK,EAAE,CAAC;AAEX,MAAM,UAAU,YAAY;IAC1B,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,eAAe,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -28,5 +28,5 @@ export interface DoctorFixResult {
|
|
|
28
28
|
* Throws synchronously if `ip` is invalid (from assertValidIp).
|
|
29
29
|
* All handler errors are caught and recorded in `failed` — never rethrown.
|
|
30
30
|
*/
|
|
31
|
-
export declare function runDoctorFix(ip: string, findings: DoctorFinding[], options: DoctorFixOptions): Promise<DoctorFixResult>;
|
|
31
|
+
export declare function runDoctorFix(ip: string, findings: DoctorFinding[], options: DoctorFixOptions, serverName?: string): Promise<DoctorFixResult>;
|
|
32
32
|
//# sourceMappingURL=doctor-fix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-fix.d.ts","sourceRoot":"","sources":["../../src/core/doctor-fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"doctor-fix.d.ts","sourceRoot":"","sources":["../../src/core/doctor-fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gFAAgF;IAChF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAID;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,gBAAgB,EACzB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAuE1B"}
|
package/dist/core/doctor-fix.js
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
import inquirer from "inquirer";
|
|
13
13
|
import { assertValidIp } from "../utils/ssh.js";
|
|
14
14
|
import { resolveHandlerChain, executeHandlerChain } from "./audit/handlers/index.js";
|
|
15
|
+
import { getErrorMessage } from "../utils/errorMapper.js";
|
|
16
|
+
import { saveFixHistory } from "./audit/fix-history.js";
|
|
15
17
|
// ─── Orchestrator ─────────────────────────────────────────────────────────────
|
|
16
18
|
/**
|
|
17
19
|
* Run doctor fix for a list of findings on the given server IP.
|
|
@@ -19,7 +21,7 @@ import { resolveHandlerChain, executeHandlerChain } from "./audit/handlers/index
|
|
|
19
21
|
* Throws synchronously if `ip` is invalid (from assertValidIp).
|
|
20
22
|
* All handler errors are caught and recorded in `failed` — never rethrown.
|
|
21
23
|
*/
|
|
22
|
-
export async function runDoctorFix(ip, findings, options) {
|
|
24
|
+
export async function runDoctorFix(ip, findings, options, serverName) {
|
|
23
25
|
assertValidIp(ip);
|
|
24
26
|
const applied = [];
|
|
25
27
|
const skipped = [];
|
|
@@ -65,10 +67,23 @@ export async function runDoctorFix(ip, findings, options) {
|
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
catch (err) {
|
|
68
|
-
const message =
|
|
70
|
+
const message = getErrorMessage(err);
|
|
69
71
|
failed.push(`${finding.id}: ${message}`);
|
|
70
72
|
}
|
|
71
73
|
}
|
|
74
|
+
if (applied.length > 0 && !options.dryRun) {
|
|
75
|
+
await saveFixHistory({
|
|
76
|
+
fixId: `doctor-fix-${Date.now()}`,
|
|
77
|
+
serverIp: ip,
|
|
78
|
+
serverName: serverName ?? ip,
|
|
79
|
+
timestamp: new Date().toISOString(),
|
|
80
|
+
checks: applied,
|
|
81
|
+
scoreBefore: 0,
|
|
82
|
+
scoreAfter: null,
|
|
83
|
+
status: "applied",
|
|
84
|
+
source: "doctor",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
72
87
|
return { applied, skipped, failed };
|
|
73
88
|
}
|
|
74
89
|
//# sourceMappingURL=doctor-fix.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-fix.js","sourceRoot":"","sources":["../../src/core/doctor-fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-fix.js","sourceRoot":"","sources":["../../src/core/doctor-fix.ts"],"names":[],"mappings":"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"}
|
package/dist/core/doctor.d.ts
CHANGED
|
@@ -7,19 +7,23 @@
|
|
|
7
7
|
import type { MetricSnapshot, KastellResult } from "../types/index.js";
|
|
8
8
|
import type { AuditHistoryEntry } from "./audit/types.js";
|
|
9
9
|
export type DoctorSeverity = "critical" | "warning" | "info";
|
|
10
|
+
export declare const DOCTOR_SEVERITY_WEIGHTS: Record<DoctorSeverity, number>;
|
|
10
11
|
export interface DoctorFinding {
|
|
11
12
|
id: string;
|
|
12
13
|
severity: DoctorSeverity;
|
|
13
14
|
description: string;
|
|
14
15
|
command: string;
|
|
15
16
|
fixCommand?: string;
|
|
17
|
+
weight: number;
|
|
16
18
|
}
|
|
19
|
+
export declare function computeDoctorScore(findings: DoctorFinding[]): number;
|
|
17
20
|
export interface DoctorResult {
|
|
18
21
|
serverName: string;
|
|
19
22
|
serverIp: string;
|
|
20
23
|
findings: DoctorFinding[];
|
|
21
24
|
ranAt: string;
|
|
22
25
|
usedFreshData: boolean;
|
|
26
|
+
score: number;
|
|
23
27
|
}
|
|
24
28
|
/** Path to the local per-server metrics history file */
|
|
25
29
|
export declare function metricsHistoryPath(serverIp: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAIlE,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAMpE;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAWrE;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAStF;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,cAAc,EAAE,EAC3B,UAAU,EAAE,MAAM,GACjB,aAAa,GAAG,IAAI,CAmCtB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiBvE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAoB1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAejF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,iBAAiB,EAAE,EAC5B,UAAU,EAAE,MAAM,GACjB,aAAa,GAAG,IAAI,CA2BtB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,aAAa,GAAG,IAAI,CAoBtB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA8B5E;AA8CD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAoFtC"}
|
package/dist/core/doctor.js
CHANGED
|
@@ -10,7 +10,22 @@ import { KASTELL_DIR } from "../utils/paths.js";
|
|
|
10
10
|
import { secureWriteFileSync, secureMkdirSync } from "../utils/secureWrite.js";
|
|
11
11
|
import { assertValidIp, sshExec } from "../utils/ssh.js";
|
|
12
12
|
import { raw } from "../utils/sshCommand.js";
|
|
13
|
+
import { MS_PER_DAY } from "../utils/dates.js";
|
|
13
14
|
import { loadAuditHistory } from "./audit/history.js";
|
|
15
|
+
import { extractReason } from "../utils/errors.js";
|
|
16
|
+
export const DOCTOR_SEVERITY_WEIGHTS = {
|
|
17
|
+
critical: 10,
|
|
18
|
+
warning: 5,
|
|
19
|
+
info: 1,
|
|
20
|
+
};
|
|
21
|
+
export function computeDoctorScore(findings) {
|
|
22
|
+
if (findings.length === 0)
|
|
23
|
+
return 100;
|
|
24
|
+
// 7 checks × max weight 10 = 70 total possible penalty
|
|
25
|
+
const maxPenalty = 70;
|
|
26
|
+
const totalPenalty = findings.reduce((sum, f) => sum + f.weight, 0);
|
|
27
|
+
return Math.max(0, Math.round(100 - (totalPenalty / maxPenalty) * 100));
|
|
28
|
+
}
|
|
14
29
|
// ─── Metrics cache helpers ────────────────────────────────────────────────────
|
|
15
30
|
/** Path to the local per-server metrics history file */
|
|
16
31
|
export function metricsHistoryPath(serverIp) {
|
|
@@ -80,6 +95,7 @@ export function checkDiskTrend(snapshots, serverName) {
|
|
|
80
95
|
severity,
|
|
81
96
|
description: `Disk projected to reach 95% full in ~${daysRounded} day${daysRounded === 1 ? "" : "s"} at current growth rate`,
|
|
82
97
|
command: `df -h / && kastell audit ${serverName}`,
|
|
98
|
+
weight: DOCTOR_SEVERITY_WEIGHTS[severity],
|
|
83
99
|
};
|
|
84
100
|
}
|
|
85
101
|
/**
|
|
@@ -101,6 +117,7 @@ export function checkSwapUsage(swapOutput) {
|
|
|
101
117
|
severity,
|
|
102
118
|
description: `Swap usage is at ${pct}% — high swap can indicate memory pressure`,
|
|
103
119
|
command: "free -h",
|
|
120
|
+
weight: DOCTOR_SEVERITY_WEIGHTS[severity],
|
|
104
121
|
};
|
|
105
122
|
}
|
|
106
123
|
/**
|
|
@@ -123,6 +140,7 @@ export function checkStalePackages(aptOutput) {
|
|
|
123
140
|
description: `${count} package${count === 1 ? "" : "s"} available for upgrade — keep packages updated to reduce security exposure`,
|
|
124
141
|
command: "sudo apt update && sudo apt upgrade",
|
|
125
142
|
fixCommand: "apt-upgrade",
|
|
143
|
+
weight: DOCTOR_SEVERITY_WEIGHTS[severity],
|
|
126
144
|
};
|
|
127
145
|
}
|
|
128
146
|
/**
|
|
@@ -143,6 +161,7 @@ export function checkFail2banBanRate(fail2banOutput) {
|
|
|
143
161
|
severity: "warning",
|
|
144
162
|
description: `fail2ban has recorded ${total} total bans — review attack patterns and consider additional hardening`,
|
|
145
163
|
command: "sudo fail2ban-client status",
|
|
164
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["warning"],
|
|
146
165
|
};
|
|
147
166
|
}
|
|
148
167
|
/**
|
|
@@ -172,6 +191,7 @@ export function checkAuditRegressionStreak(history, serverName) {
|
|
|
172
191
|
severity: "warning",
|
|
173
192
|
description: `Audit score has declined in ${maxStreak + 1} consecutive runs — security posture may be degrading`,
|
|
174
193
|
command: `kastell audit ${serverName}`,
|
|
194
|
+
weight: DOCTOR_SEVERITY_WEIGHTS["warning"],
|
|
175
195
|
};
|
|
176
196
|
}
|
|
177
197
|
/**
|
|
@@ -185,7 +205,7 @@ export function checkBackupAge(backupLogOutput, serverName) {
|
|
|
185
205
|
const lastTs = Date.parse(trimmed);
|
|
186
206
|
if (isNaN(lastTs))
|
|
187
207
|
return null;
|
|
188
|
-
const daysOld = (Date.now() - lastTs) /
|
|
208
|
+
const daysOld = (Date.now() - lastTs) / MS_PER_DAY;
|
|
189
209
|
if (daysOld <= 7)
|
|
190
210
|
return null;
|
|
191
211
|
const severity = daysOld > 30 ? "critical" : "warning";
|
|
@@ -195,6 +215,7 @@ export function checkBackupAge(backupLogOutput, serverName) {
|
|
|
195
215
|
severity,
|
|
196
216
|
description: `Last backup was ${daysRounded} day${daysRounded === 1 ? "" : "s"} ago — consider running a backup soon`,
|
|
197
217
|
command: `kastell backup ${serverName}`,
|
|
218
|
+
weight: DOCTOR_SEVERITY_WEIGHTS[severity],
|
|
198
219
|
};
|
|
199
220
|
}
|
|
200
221
|
/**
|
|
@@ -229,6 +250,7 @@ export function checkDockerDisk(dockerDfOutput) {
|
|
|
229
250
|
severity,
|
|
230
251
|
description: `Docker has ~${gbDisplay} GB of reclaimable disk space`,
|
|
231
252
|
command: "docker system prune -a",
|
|
253
|
+
weight: DOCTOR_SEVERITY_WEIGHTS[severity],
|
|
232
254
|
};
|
|
233
255
|
}
|
|
234
256
|
/** Parse a reclaimable string like "8GB (30%)" or "500MB (5%)" into gigabytes. */
|
|
@@ -280,7 +302,7 @@ export async function runServerDoctor(ip, serverName, options) {
|
|
|
280
302
|
catch (err) {
|
|
281
303
|
return {
|
|
282
304
|
success: false,
|
|
283
|
-
error:
|
|
305
|
+
error: extractReason(err),
|
|
284
306
|
};
|
|
285
307
|
}
|
|
286
308
|
const fresh = options.fresh ?? false;
|
|
@@ -334,6 +356,7 @@ export async function runServerDoctor(ip, serverName, options) {
|
|
|
334
356
|
dockerDfOutput !== undefined ? checkDockerDisk(dockerDfOutput) : null,
|
|
335
357
|
];
|
|
336
358
|
const findings = rawFindings.filter(Boolean).sort((a, b) => SEVERITY_ORDER[a.severity] - SEVERITY_ORDER[b.severity]);
|
|
359
|
+
const score = computeDoctorScore(findings);
|
|
337
360
|
return {
|
|
338
361
|
success: true,
|
|
339
362
|
data: {
|
|
@@ -342,6 +365,7 @@ export async function runServerDoctor(ip, serverName, options) {
|
|
|
342
365
|
findings,
|
|
343
366
|
ranAt: new Date().toISOString(),
|
|
344
367
|
usedFreshData: fresh,
|
|
368
|
+
score,
|
|
345
369
|
},
|
|
346
370
|
};
|
|
347
371
|
}
|
package/dist/core/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwBtD,iFAAiF;AAEjF,wDAAwD;AACxD,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,IAAI,CAAC,WAAW,EAAE,kBAAkB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AAClF,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,MAA0B,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,SAA2B;IAC9E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,eAAe,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACxF,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,SAA2B,EAC3B,UAAkB;IAElB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;IACvF,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,SAAS;IACjE,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAChD,MAAM,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC;IAEpC,IAAI,UAAU,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,QAAwB,CAAC;IAC7B,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,QAAQ,GAAG,UAAU,CAAC;IACxB,CAAC;SAAM,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QAC3B,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,YAAY;QAChB,QAAQ;QACR,WAAW,EAAE,wCAAwC,WAAW,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,yBAAyB;QAC5H,OAAO,EAAE,4BAA4B,UAAU,EAAE;KAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,GAAG,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,QAAQ,GAAmB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnE,OAAO;QACL,EAAE,EAAE,WAAW;QACf,QAAQ;QACR,WAAW,EAAE,oBAAoB,GAAG,4CAA4C;QAChF,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,8CAA8C;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE5C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,QAAQ,GAAmB,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAErE,OAAO;QACL,EAAE,EAAE,gBAAgB;QACpB,QAAQ;QACR,WAAW,EAAE,GAAG,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,4EAA4E;QAClI,OAAO,EAAE,qCAAqC;QAC9C,UAAU,EAAE,aAAa;KAC1B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAAsB;IACzD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO;QACL,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,yBAAyB,KAAK,wEAAwE;QACnH,OAAO,EAAE,6BAA6B;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA4B,EAC5B,UAAkB;IAElB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;YACxD,aAAa,EAAE,CAAC;YAChB,IAAI,aAAa,GAAG,SAAS;gBAAE,SAAS,GAAG,aAAa,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO;QACL,EAAE,EAAE,kBAAkB;QACtB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,+BAA+B,SAAS,GAAG,CAAC,uDAAuD;QAChH,OAAO,EAAE,iBAAiB,UAAU,EAAE;KACvC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,eAAuB,EACvB,UAAkB;IAElB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC;IACnD,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,QAAQ,GAAmB,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO;QACL,EAAE,EAAE,YAAY;QAChB,QAAQ;QACR,WAAW,EAAE,mBAAmB,WAAW,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,uCAAuC;QACrH,OAAO,EAAE,kBAAkB,UAAU,EAAE;KACxC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,cAAsB;IACpD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAA2B,CAAC;YACpD,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,QAAQ,GAAmB,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC,OAAO;QACL,EAAE,EAAE,aAAa;QACjB,QAAQ;QACR,WAAW,EAAE,eAAe,SAAS,+BAA+B;QACpE,OAAO,EAAE,wBAAwB;KAClC,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,IAAI;YACP,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB,KAAK,IAAI;YACP,OAAO,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAC/B,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QACtC;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,cAAc,GAAmC;IACrD,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,iFAAiF;AAEjF,MAAM,WAAW,GAAG,0DAA0D,CAAC;AAC/E,MAAM,QAAQ,GACZ,6EAA6E,CAAC;AAChF,MAAM,OAAO,GAAG,mCAAmC,CAAC;AACpD,MAAM,YAAY,GAChB,kMAAkM,CAAC;AACrM,MAAM,cAAc,GAAG,iDAAiD,CAAC;AACzE,MAAM,UAAU,GACd,kGAAkG,CAAC;AAErG,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAU,EACV,UAAkB,EAClB,OAA4B;IAE5B,IAAI,CAAC;QACH,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IAErC,8BAA8B;IAC9B,IAAI,SAAS,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEvC,kDAAkD;IAClD,IAAI,UAA8B,CAAC;IACnC,IAAI,SAA6B,CAAC;IAClC,IAAI,cAAkC,CAAC;IACvC,IAAI,eAAmC,CAAC;IACxC,IAAI,cAAkC,CAAC;IAEvC,IAAI,KAAK,EAAE,CAAC;QACV,kEAAkE;QAClE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAmB,CAAC;gBAClE,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACjD,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;oBACnC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7E,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9B,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;YAChC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;SAC7B,CAAC,CAAC;QAEH,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5B,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC;QACpC,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;QACnC,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,oCAAoC;IACpC,MAAM,YAAY,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE1C,0BAA0B;IAC1B,MAAM,WAAW,GAA6B;QAC5C,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC;QACrC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QAC5D,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9D,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1E,0BAA0B,CAAC,YAAY,EAAE,UAAU,CAAC;QACpD,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QAClF,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;KACtE,CAAC;IAEF,MAAM,QAAQ,GAAI,WAAW,CAAC,MAAM,CAAC,OAAO,CAAqB,CAAC,IAAI,CACpE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAClE,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,UAAU;YACV,QAAQ,EAAE,EAAE;YACZ,QAAQ;YACR,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC/B,aAAa,EAAE,KAAK;SACrB;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/core/firewall.d.ts
CHANGED
|
@@ -2,14 +2,11 @@ import { type SshCommand } from "../utils/sshCommand.js";
|
|
|
2
2
|
import type { FirewallStatus, FirewallProtocol } from "../types/index.js";
|
|
3
3
|
import type { Platform } from "../types/index.js";
|
|
4
4
|
export declare const PROTECTED_PORTS: number[];
|
|
5
|
-
export declare const COOLIFY_PORTS: number[];
|
|
6
|
-
export declare const DOKPLOY_PORTS: number[];
|
|
7
5
|
export declare const BARE_PORTS: number[];
|
|
8
6
|
export declare function isValidPort(port: number): boolean;
|
|
9
7
|
export declare function isProtectedPort(port: number): boolean;
|
|
10
|
-
export declare function getPortsForPlatform(platform?: Platform): number[];
|
|
8
|
+
export declare function getPortsForPlatform(platform?: Platform | "bare"): readonly number[];
|
|
11
9
|
export declare function buildFirewallSetupCommand(platform?: Platform): SshCommand;
|
|
12
|
-
export declare function buildBareFirewallSetupCommand(): SshCommand;
|
|
13
10
|
export declare function buildUfwRuleCommand(action: "allow" | "delete allow", port: number, protocol?: FirewallProtocol): SshCommand;
|
|
14
11
|
export declare function buildUfwStatusCommand(): SshCommand;
|
|
15
12
|
export declare function parseUfwStatus(stdout: string): FirewallStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firewall.d.ts","sourceRoot":"","sources":["../../src/core/firewall.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAgB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD,eAAO,MAAM,eAAe,UAAO,CAAC;AACpC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"firewall.d.ts","sourceRoot":"","sources":["../../src/core/firewall.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAgB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD,eAAO,MAAM,eAAe,UAAO,CAAC;AACpC,eAAO,MAAM,UAAU,UAAY,CAAC;AAIpC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAGnF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAWzE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,GAAG,cAAc,EAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,gBAAwB,GACjC,UAAU,CAGZ;AAED,wBAAgB,qBAAqB,IAAI,UAAU,CAElD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAkB7D;AAuBD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAoB5F;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,gBAAwB,GACjC,OAAO,CAAC,cAAc,CAAC,CAwBzB;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,gBAAwB,EAClC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoBjF;AAID,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,IAAI,CAAC,CAwCf"}
|