@studiometa/trafic-agent 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +92 -89
- package/dist/cli.js.map +1 -1
- package/dist/index.js +3 -41
- package/dist/server-D0N_6y4c.js +687 -0
- package/dist/server-D0N_6y4c.js.map +1 -0
- package/dist/server.js +2 -9
- package/dist/setup/ddev.d.ts.map +1 -1
- package/dist/setup-CVf8YfPW.js +941 -0
- package/dist/setup-CVf8YfPW.js.map +1 -0
- package/package.json +6 -6
- package/dist/index-Dip9RQ_T.js +0 -904
- package/dist/index-Dip9RQ_T.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/server-CHT47EXr.js +0 -618
- package/dist/server-CHT47EXr.js.map +0 -1
- package/dist/server.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { a as startIdleScheduler, l as validateConfig, n as setup, s as loadConfig, t as audit } from "./setup-CVf8YfPW.js";
|
|
3
|
+
import { o as closeDb, t as startServer } from "./server-D0N_6y4c.js";
|
|
2
4
|
import { parseArgs } from "node:util";
|
|
3
|
-
|
|
4
|
-
import { x as startServer, d as closeDb } from "./server-CHT47EXr.js";
|
|
5
|
-
const HELP = `
|
|
5
|
+
var HELP = `
|
|
6
6
|
trafic-agent — Server agent for DDEV preview environments
|
|
7
7
|
|
|
8
8
|
Usage:
|
|
@@ -42,100 +42,103 @@ Examples:
|
|
|
42
42
|
trafic-agent audit
|
|
43
43
|
`;
|
|
44
44
|
function printHelp() {
|
|
45
|
-
|
|
45
|
+
console.log(HELP.trim());
|
|
46
46
|
}
|
|
47
47
|
function printVersion() {
|
|
48
|
-
|
|
48
|
+
console.log("0.1.9");
|
|
49
49
|
}
|
|
50
50
|
async function runStart(values) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
process.on("SIGINT", shutdown);
|
|
69
|
-
process.on("SIGTERM", shutdown);
|
|
70
|
-
startServer(config);
|
|
71
|
-
startIdleScheduler(config);
|
|
51
|
+
const config = loadConfig(values.config);
|
|
52
|
+
if (values.port) config.port = parseInt(values.port, 10);
|
|
53
|
+
const errors = validateConfig(config);
|
|
54
|
+
if (errors.length > 0) {
|
|
55
|
+
console.error("Configuration errors:");
|
|
56
|
+
for (const error of errors) console.error(` - ${error}`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
const shutdown = () => {
|
|
60
|
+
console.log("\nShutting down...");
|
|
61
|
+
closeDb();
|
|
62
|
+
process.exit(0);
|
|
63
|
+
};
|
|
64
|
+
process.on("SIGINT", shutdown);
|
|
65
|
+
process.on("SIGTERM", shutdown);
|
|
66
|
+
startServer(config);
|
|
67
|
+
startIdleScheduler(config);
|
|
72
68
|
}
|
|
73
69
|
async function runSetup(values) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
70
|
+
const existingConfig = loadConfig();
|
|
71
|
+
const tld = values.tld ?? (existingConfig.tld || void 0);
|
|
72
|
+
if (!tld) {
|
|
73
|
+
console.error("Error: --tld is required for setup");
|
|
74
|
+
console.error("Example: trafic-agent setup --tld=previews.example.com");
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
await setup({
|
|
78
|
+
tld,
|
|
79
|
+
email: values.email,
|
|
80
|
+
noHardening: values["no-hardening"],
|
|
81
|
+
noDocker: values["no-docker"],
|
|
82
|
+
noDdev: values["no-ddev"],
|
|
83
|
+
sshUsers: values["ssh-users"] ? values["ssh-users"].split(",").map((s) => s.trim()) : void 0,
|
|
84
|
+
dryRun: values["dry-run"]
|
|
85
|
+
});
|
|
90
86
|
}
|
|
91
87
|
async function main() {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
88
|
+
const { values, positionals } = parseArgs({
|
|
89
|
+
allowPositionals: true,
|
|
90
|
+
options: {
|
|
91
|
+
help: {
|
|
92
|
+
type: "boolean",
|
|
93
|
+
short: "h"
|
|
94
|
+
},
|
|
95
|
+
config: {
|
|
96
|
+
type: "string",
|
|
97
|
+
short: "c"
|
|
98
|
+
},
|
|
99
|
+
port: {
|
|
100
|
+
type: "string",
|
|
101
|
+
short: "p"
|
|
102
|
+
},
|
|
103
|
+
tld: { type: "string" },
|
|
104
|
+
email: { type: "string" },
|
|
105
|
+
"no-hardening": { type: "boolean" },
|
|
106
|
+
"no-docker": { type: "boolean" },
|
|
107
|
+
"no-ddev": { type: "boolean" },
|
|
108
|
+
"ssh-users": { type: "string" },
|
|
109
|
+
"dry-run": { type: "boolean" }
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
const command = positionals[0] ?? "help";
|
|
113
|
+
if (values.help) {
|
|
114
|
+
printHelp();
|
|
115
|
+
process.exit(0);
|
|
116
|
+
}
|
|
117
|
+
switch (command) {
|
|
118
|
+
case "help":
|
|
119
|
+
printHelp();
|
|
120
|
+
break;
|
|
121
|
+
case "version":
|
|
122
|
+
printVersion();
|
|
123
|
+
break;
|
|
124
|
+
case "start":
|
|
125
|
+
await runStart(values);
|
|
126
|
+
break;
|
|
127
|
+
case "setup":
|
|
128
|
+
await runSetup(values);
|
|
129
|
+
break;
|
|
130
|
+
case "audit":
|
|
131
|
+
await audit();
|
|
132
|
+
break;
|
|
133
|
+
default:
|
|
134
|
+
console.error(`Unknown command: ${command}`);
|
|
135
|
+
printHelp();
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
136
138
|
}
|
|
137
139
|
main().catch((error) => {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
console.error("Fatal error:", error);
|
|
141
|
+
process.exit(1);
|
|
140
142
|
});
|
|
141
|
-
|
|
143
|
+
|
|
144
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { parseArgs } from \"node:util\";\nimport { loadConfig, validateConfig } from \"./utils/config.js\";\nimport { startServer } from \"./server.js\";\nimport { startIdleScheduler } from \"./tasks/stop-idle.js\";\nimport { closeDb } from \"./utils/db.js\";\nimport { setup, audit } from \"./setup/index.js\";\n\ndeclare const __VERSION__: string;\n\nconst HELP = `\ntrafic-agent — Server agent for DDEV preview environments\n\nUsage:\n trafic-agent <command> [options]\n\nCommands:\n start Start the agent server\n setup Setup a new server (Docker, DDEV, hardening)\n audit Run security audit checks\n version Show version\n help Show this help\n\nStart options:\n -c, --config <path> Path to config file (default: /etc/trafic/config.toml)\n -p, --port <port> Override port from config\n\nSetup options:\n --tld <domain> TLD for DDEV projects (required on first run, reused from config on re-runs)\n --email <email> Email for Let's Encrypt certificates\n --no-hardening Skip server hardening steps\n --no-docker Skip Docker installation\n --no-ddev Skip DDEV installation\n --ssh-users <users> Comma-separated list of SSH users to allow (default: ddev)\n --dry-run Show what would be done without making changes\n\nExamples:\n # Start the agent\n trafic-agent start\n trafic-agent start --config /path/to/config.toml\n\n # Setup a new server\n sudo trafic-agent setup --tld=previews.example.com\n sudo trafic-agent setup --tld=previews.example.com --email=admin@example.com\n sudo trafic-agent setup --tld=previews.example.com --no-hardening --dry-run\n\n # Run security audit\n trafic-agent audit\n`;\n\nfunction printHelp(): void {\n console.log(HELP.trim());\n}\n\nfunction printVersion(): void {\n console.log(__VERSION__);\n}\n\nasync function runStart(values: Record<string, unknown>): Promise<void> {\n // Load config\n const config = loadConfig(values.config as string | undefined);\n\n // Override port if specified\n if (values.port) {\n config.port = parseInt(values.port as string, 10);\n }\n\n // Validate config\n const errors = validateConfig(config);\n if (errors.length > 0) {\n console.error(\"Configuration errors:\");\n for (const error of errors) {\n console.error(` - ${error}`);\n }\n process.exit(1);\n }\n\n // Graceful shutdown\n const shutdown = (): void => {\n console.log(\"\\nShutting down...\");\n closeDb();\n process.exit(0);\n };\n\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n\n // Start server and scheduler\n startServer(config);\n startIdleScheduler(config);\n}\n\nasync function runSetup(values: Record<string, unknown>): Promise<void> {\n // Load existing config to use as defaults on re-runs\n const existingConfig = loadConfig();\n const tld = (values.tld as string | undefined) ?? (existingConfig.tld || undefined);\n\n if (!tld) {\n console.error(\"Error: --tld is required for setup\");\n console.error(\"Example: trafic-agent setup --tld=previews.example.com\");\n process.exit(1);\n }\n\n await setup({\n tld,\n email: values.email as string | undefined,\n noHardening: values[\"no-hardening\"] as boolean | undefined,\n noDocker: values[\"no-docker\"] as boolean | undefined,\n noDdev: values[\"no-ddev\"] as boolean | undefined,\n sshUsers: values[\"ssh-users\"]\n ? (values[\"ssh-users\"] as string).split(\",\").map((s) => s.trim())\n : undefined,\n dryRun: values[\"dry-run\"] as boolean | undefined,\n });\n}\n\nasync function main(): Promise<void> {\n const { values, positionals } = parseArgs({\n allowPositionals: true,\n options: {\n // Common\n help: { type: \"boolean\", short: \"h\" },\n\n // Start options\n config: { type: \"string\", short: \"c\" },\n port: { type: \"string\", short: \"p\" },\n\n // Setup options\n tld: { type: \"string\" },\n email: { type: \"string\" },\n \"no-hardening\": { type: \"boolean\" },\n \"no-docker\": { type: \"boolean\" },\n \"no-ddev\": { type: \"boolean\" },\n \"ssh-users\": { type: \"string\" },\n \"dry-run\": { type: \"boolean\" },\n },\n });\n\n const command = positionals[0] ?? \"help\";\n\n if (values.help) {\n printHelp();\n process.exit(0);\n }\n\n switch (command) {\n case \"help\":\n printHelp();\n break;\n\n case \"version\":\n printVersion();\n break;\n\n case \"start\":\n await runStart(values);\n break;\n\n case \"setup\":\n await runSetup(values);\n break;\n\n case \"audit\":\n await audit();\n break;\n\n default:\n console.error(`Unknown command: ${command}`);\n printHelp();\n process.exit(1);\n }\n}\n\nmain().catch((error) => {\n console.error(\"Fatal error:\", error);\n process.exit(1);\n});\n"],"
|
|
1
|
+
{"version":3,"file":"cli.js","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { parseArgs } from \"node:util\";\nimport { loadConfig, validateConfig } from \"./utils/config.js\";\nimport { startServer } from \"./server.js\";\nimport { startIdleScheduler } from \"./tasks/stop-idle.js\";\nimport { closeDb } from \"./utils/db.js\";\nimport { setup, audit } from \"./setup/index.js\";\n\ndeclare const __VERSION__: string;\n\nconst HELP = `\ntrafic-agent — Server agent for DDEV preview environments\n\nUsage:\n trafic-agent <command> [options]\n\nCommands:\n start Start the agent server\n setup Setup a new server (Docker, DDEV, hardening)\n audit Run security audit checks\n version Show version\n help Show this help\n\nStart options:\n -c, --config <path> Path to config file (default: /etc/trafic/config.toml)\n -p, --port <port> Override port from config\n\nSetup options:\n --tld <domain> TLD for DDEV projects (required on first run, reused from config on re-runs)\n --email <email> Email for Let's Encrypt certificates\n --no-hardening Skip server hardening steps\n --no-docker Skip Docker installation\n --no-ddev Skip DDEV installation\n --ssh-users <users> Comma-separated list of SSH users to allow (default: ddev)\n --dry-run Show what would be done without making changes\n\nExamples:\n # Start the agent\n trafic-agent start\n trafic-agent start --config /path/to/config.toml\n\n # Setup a new server\n sudo trafic-agent setup --tld=previews.example.com\n sudo trafic-agent setup --tld=previews.example.com --email=admin@example.com\n sudo trafic-agent setup --tld=previews.example.com --no-hardening --dry-run\n\n # Run security audit\n trafic-agent audit\n`;\n\nfunction printHelp(): void {\n console.log(HELP.trim());\n}\n\nfunction printVersion(): void {\n console.log(__VERSION__);\n}\n\nasync function runStart(values: Record<string, unknown>): Promise<void> {\n // Load config\n const config = loadConfig(values.config as string | undefined);\n\n // Override port if specified\n if (values.port) {\n config.port = parseInt(values.port as string, 10);\n }\n\n // Validate config\n const errors = validateConfig(config);\n if (errors.length > 0) {\n console.error(\"Configuration errors:\");\n for (const error of errors) {\n console.error(` - ${error}`);\n }\n process.exit(1);\n }\n\n // Graceful shutdown\n const shutdown = (): void => {\n console.log(\"\\nShutting down...\");\n closeDb();\n process.exit(0);\n };\n\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n\n // Start server and scheduler\n startServer(config);\n startIdleScheduler(config);\n}\n\nasync function runSetup(values: Record<string, unknown>): Promise<void> {\n // Load existing config to use as defaults on re-runs\n const existingConfig = loadConfig();\n const tld = (values.tld as string | undefined) ?? (existingConfig.tld || undefined);\n\n if (!tld) {\n console.error(\"Error: --tld is required for setup\");\n console.error(\"Example: trafic-agent setup --tld=previews.example.com\");\n process.exit(1);\n }\n\n await setup({\n tld,\n email: values.email as string | undefined,\n noHardening: values[\"no-hardening\"] as boolean | undefined,\n noDocker: values[\"no-docker\"] as boolean | undefined,\n noDdev: values[\"no-ddev\"] as boolean | undefined,\n sshUsers: values[\"ssh-users\"]\n ? (values[\"ssh-users\"] as string).split(\",\").map((s) => s.trim())\n : undefined,\n dryRun: values[\"dry-run\"] as boolean | undefined,\n });\n}\n\nasync function main(): Promise<void> {\n const { values, positionals } = parseArgs({\n allowPositionals: true,\n options: {\n // Common\n help: { type: \"boolean\", short: \"h\" },\n\n // Start options\n config: { type: \"string\", short: \"c\" },\n port: { type: \"string\", short: \"p\" },\n\n // Setup options\n tld: { type: \"string\" },\n email: { type: \"string\" },\n \"no-hardening\": { type: \"boolean\" },\n \"no-docker\": { type: \"boolean\" },\n \"no-ddev\": { type: \"boolean\" },\n \"ssh-users\": { type: \"string\" },\n \"dry-run\": { type: \"boolean\" },\n },\n });\n\n const command = positionals[0] ?? \"help\";\n\n if (values.help) {\n printHelp();\n process.exit(0);\n }\n\n switch (command) {\n case \"help\":\n printHelp();\n break;\n\n case \"version\":\n printVersion();\n break;\n\n case \"start\":\n await runStart(values);\n break;\n\n case \"setup\":\n await runSetup(values);\n break;\n\n case \"audit\":\n await audit();\n break;\n\n default:\n console.error(`Unknown command: ${command}`);\n printHelp();\n process.exit(1);\n }\n}\n\nmain().catch((error) => {\n console.error(\"Fatal error:\", error);\n process.exit(1);\n});\n"],"mappings":";;;;AAWA,IAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCb,SAAS,YAAkB;AACzB,SAAQ,IAAI,KAAK,MAAM,CAAC;;AAG1B,SAAS,eAAqB;AAC5B,SAAQ,IAAA,QAAgB;;AAG1B,eAAe,SAAS,QAAgD;CAEtE,MAAM,SAAS,WAAW,OAAO,OAA6B;AAG9D,KAAI,OAAO,KACT,QAAO,OAAO,SAAS,OAAO,MAAgB,GAAG;CAInD,MAAM,SAAS,eAAe,OAAO;AACrC,KAAI,OAAO,SAAS,GAAG;AACrB,UAAQ,MAAM,wBAAwB;AACtC,OAAK,MAAM,SAAS,OAClB,SAAQ,MAAM,OAAO,QAAQ;AAE/B,UAAQ,KAAK,EAAE;;CAIjB,MAAM,iBAAuB;AAC3B,UAAQ,IAAI,qBAAqB;AACjC,WAAS;AACT,UAAQ,KAAK,EAAE;;AAGjB,SAAQ,GAAG,UAAU,SAAS;AAC9B,SAAQ,GAAG,WAAW,SAAS;AAG/B,aAAY,OAAO;AACnB,oBAAmB,OAAO;;AAG5B,eAAe,SAAS,QAAgD;CAEtE,MAAM,iBAAiB,YAAY;CACnC,MAAM,MAAO,OAAO,QAA+B,eAAe,OAAO,KAAA;AAEzE,KAAI,CAAC,KAAK;AACR,UAAQ,MAAM,qCAAqC;AACnD,UAAQ,MAAM,yDAAyD;AACvE,UAAQ,KAAK,EAAE;;AAGjB,OAAM,MAAM;EACV;EACA,OAAO,OAAO;EACd,aAAa,OAAO;EACpB,UAAU,OAAO;EACjB,QAAQ,OAAO;EACf,UAAU,OAAO,eACZ,OAAO,aAAwB,MAAM,IAAI,CAAC,KAAK,MAAM,EAAE,MAAM,CAAC,GAC/D,KAAA;EACJ,QAAQ,OAAO;EAChB,CAAC;;AAGJ,eAAe,OAAsB;CACnC,MAAM,EAAE,QAAQ,gBAAgB,UAAU;EACxC,kBAAkB;EAClB,SAAS;GAEP,MAAM;IAAE,MAAM;IAAW,OAAO;IAAK;GAGrC,QAAQ;IAAE,MAAM;IAAU,OAAO;IAAK;GACtC,MAAM;IAAE,MAAM;IAAU,OAAO;IAAK;GAGpC,KAAK,EAAE,MAAM,UAAU;GACvB,OAAO,EAAE,MAAM,UAAU;GACzB,gBAAgB,EAAE,MAAM,WAAW;GACnC,aAAa,EAAE,MAAM,WAAW;GAChC,WAAW,EAAE,MAAM,WAAW;GAC9B,aAAa,EAAE,MAAM,UAAU;GAC/B,WAAW,EAAE,MAAM,WAAW;GAC/B;EACF,CAAC;CAEF,MAAM,UAAU,YAAY,MAAM;AAElC,KAAI,OAAO,MAAM;AACf,aAAW;AACX,UAAQ,KAAK,EAAE;;AAGjB,SAAQ,SAAR;EACE,KAAK;AACH,cAAW;AACX;EAEF,KAAK;AACH,iBAAc;AACd;EAEF,KAAK;AACH,SAAM,SAAS,OAAO;AACtB;EAEF,KAAK;AACH,SAAM,SAAS,OAAO;AACtB;EAEF,KAAK;AACH,SAAM,OAAO;AACb;EAEF;AACE,WAAQ,MAAM,oBAAoB,UAAU;AAC5C,cAAW;AACX,WAAQ,KAAK,EAAE;;;AAIrB,MAAM,CAAC,OAAO,UAAU;AACtB,SAAQ,MAAM,gBAAgB,MAAM;AACpC,SAAQ,KAAK,EAAE;EACf"}
|
package/dist/index.js
CHANGED
|
@@ -1,41 +1,3 @@
|
|
|
1
|
-
import { a, l,
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
4
|
-
a as audit,
|
|
5
|
-
b2 as buildHostnameIndex,
|
|
6
|
-
c2 as checkAuth,
|
|
7
|
-
a2 as cleanOldLogs,
|
|
8
|
-
d2 as closeDb,
|
|
9
|
-
g as getAccessLogs,
|
|
10
|
-
e as getDb,
|
|
11
|
-
f as getIdleProjects,
|
|
12
|
-
h as getIdleTimeoutMs,
|
|
13
|
-
i as getProject,
|
|
14
|
-
j as getProjectFromHostname,
|
|
15
|
-
k as getProjectInfo,
|
|
16
|
-
l2 as initDb,
|
|
17
|
-
m as listProjects,
|
|
18
|
-
l as loadConfig,
|
|
19
|
-
n as loadProjectConfig,
|
|
20
|
-
o as loadProjectList,
|
|
21
|
-
p2 as logAccess,
|
|
22
|
-
q as matchHostname,
|
|
23
|
-
r2 as matchIp,
|
|
24
|
-
s2 as parseBasicAuth,
|
|
25
|
-
t as parseBearerToken,
|
|
26
|
-
p as parseDuration,
|
|
27
|
-
b as printAuditResults,
|
|
28
|
-
r as runAudit,
|
|
29
|
-
u as setProjectStatus,
|
|
30
|
-
s as setup,
|
|
31
|
-
v2 as shouldNeverStop,
|
|
32
|
-
c as startIdleScheduler,
|
|
33
|
-
w as startProject,
|
|
34
|
-
x as startServer,
|
|
35
|
-
d as stopIdleProjects,
|
|
36
|
-
y as stopProject,
|
|
37
|
-
z as updateProjectAccess,
|
|
38
|
-
v as validateConfig,
|
|
39
|
-
A as watchProjectList
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import { a as startIdleScheduler, c as parseDuration, i as runAudit, l as validateConfig, n as setup, o as stopIdleProjects, r as printAuditResults, s as loadConfig, t as audit } from "./setup-CVf8YfPW.js";
|
|
2
|
+
import { C as checkAuth, D as parseBearerToken, E as parseBasicAuth, S as watchProjectList, T as matchIp, _ as getProjectInfo, a as cleanOldLogs, b as startProject, c as getDb, d as initDb, f as logAccess, g as getProjectFromHostname, h as buildHostnameIndex, i as shouldNeverStop, l as getIdleProjects, m as updateProjectAccess, n as getIdleTimeoutMs, o as closeDb, p as setProjectStatus, r as loadProjectConfig, s as getAccessLogs, t as startServer, u as getProject, v as listProjects, w as matchHostname, x as stopProject, y as loadProjectList } from "./server-D0N_6y4c.js";
|
|
3
|
+
export { audit, buildHostnameIndex, checkAuth, cleanOldLogs, closeDb, getAccessLogs, getDb, getIdleProjects, getIdleTimeoutMs, getProject, getProjectFromHostname, getProjectInfo, initDb, listProjects, loadConfig, loadProjectConfig, loadProjectList, logAccess, matchHostname, matchIp, parseBasicAuth, parseBearerToken, parseDuration, printAuditResults, runAudit, setProjectStatus, setup, shouldNeverStop, startIdleScheduler, startProject, startServer, stopIdleProjects, stopProject, updateProjectAccess, validateConfig, watchProjectList };
|