telegram-ssh-bot 2.2.0 → 2.3.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/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +19 -1
- package/dist/config/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/wizard/InstallationWizard.d.ts +32 -0
- package/dist/wizard/InstallationWizard.d.ts.map +1 -0
- package/dist/wizard/InstallationWizard.js +96 -0
- package/dist/wizard/InstallationWizard.js.map +1 -0
- package/dist/wizard/index.d.ts +10 -0
- package/dist/wizard/index.d.ts.map +1 -0
- package/dist/wizard/index.js +8 -0
- package/dist/wizard/index.js.map +1 -0
- package/dist/wizard/prompts.d.ts +45 -0
- package/dist/wizard/prompts.d.ts.map +1 -0
- package/dist/wizard/prompts.js +194 -0
- package/dist/wizard/prompts.js.map +1 -0
- package/dist/wizard/validators.d.ts +50 -0
- package/dist/wizard/validators.d.ts.map +1 -0
- package/dist/wizard/validators.js +107 -0
- package/dist/wizard/validators.js.map +1 -0
- package/package.json +3 -1
- package/scripts/setup-env.d.ts +28 -0
- package/scripts/setup-env.js +61 -5
package/dist/config/index.d.ts
CHANGED
|
@@ -65,4 +65,13 @@ export declare function loadConfig(): Promise<AppConfig>;
|
|
|
65
65
|
* Validate that owner IDs are configured
|
|
66
66
|
*/
|
|
67
67
|
export declare function validateOwnerIds(config: AppConfig): void;
|
|
68
|
+
/**
|
|
69
|
+
* Check if the installation wizard should run
|
|
70
|
+
* Returns true if required environment variables are missing
|
|
71
|
+
*/
|
|
72
|
+
export declare function shouldRunWizard(): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Get list of missing required configuration keys
|
|
75
|
+
*/
|
|
76
|
+
export declare function getMissingConfigKeys(): string[];
|
|
68
77
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EACV,SAAS,EAIV,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAiC;gBAE1C,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAMtD;;OAEG;IACH,aAAa,IAAI,IAAI;IAqBrB;;OAEG;IACH,YAAY,IAAI,IAAI;IAWpB;;OAEG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBhC;;OAEG;YACW,QAAQ;IAqCtB;;OAEG;YACW,WAAW;IAqBzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAiCxB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EACV,SAAS,EAIV,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAiC;gBAE1C,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAMtD;;OAEG;IACH,aAAa,IAAI,IAAI;IAqBrB;;OAEG;IACH,YAAY,IAAI,IAAI;IAWpB;;OAEG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBhC;;OAEG;YACW,QAAQ;IAqCtB;;OAEG;YACW,WAAW;IAqBzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAiCxB;AAkFD;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAsFrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAMxD;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C"}
|
package/dist/config/index.js
CHANGED
|
@@ -177,7 +177,11 @@ export class ConfigReloader extends EventEmitter {
|
|
|
177
177
|
/**
|
|
178
178
|
* Required environment variable keys
|
|
179
179
|
*/
|
|
180
|
-
const REQUIRED_ENV_KEYS = [
|
|
180
|
+
const REQUIRED_ENV_KEYS = [
|
|
181
|
+
"BOT_TOKEN",
|
|
182
|
+
"BOT_CHAT_ID",
|
|
183
|
+
"ENCRYPTION_KEY",
|
|
184
|
+
];
|
|
181
185
|
/**
|
|
182
186
|
* Collect all missing required environment variables
|
|
183
187
|
*/
|
|
@@ -312,4 +316,18 @@ export function validateOwnerIds(config) {
|
|
|
312
316
|
throw new InvalidConfigError("At least one owner ID must be configured via BOT_OWNER_IDS");
|
|
313
317
|
}
|
|
314
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* Check if the installation wizard should run
|
|
321
|
+
* Returns true if required environment variables are missing
|
|
322
|
+
*/
|
|
323
|
+
export function shouldRunWizard() {
|
|
324
|
+
const missingKeys = getMissingEnvKeys();
|
|
325
|
+
return missingKeys.length > 0;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Get list of missing required configuration keys
|
|
329
|
+
*/
|
|
330
|
+
export function getMissingConfigKeys() {
|
|
331
|
+
return getMissingEnvKeys();
|
|
332
|
+
}
|
|
315
333
|
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
|
package/dist/index.js
CHANGED
|
@@ -4,15 +4,18 @@
|
|
|
4
4
|
*
|
|
5
5
|
* A secure Telegram bot for managing SSH connections
|
|
6
6
|
*
|
|
7
|
-
* @version 2.
|
|
7
|
+
* @version 2.3.0
|
|
8
8
|
*/
|
|
9
|
-
import "dotenv
|
|
9
|
+
import { config as dotenvConfig } from "dotenv";
|
|
10
|
+
import { existsSync } from "fs";
|
|
11
|
+
import { getEnvFilePath } from "../scripts/setup-env.js";
|
|
10
12
|
import { ConfigReloader, loadConfig, validateOwnerIds, } from "./config/index.js";
|
|
11
13
|
import { Bot, ConnectionPool, SSHClient, ServerManager } from "./core/index.js";
|
|
12
14
|
import { HealthHandler } from "./handlers/HealthHandler.js";
|
|
13
15
|
import { AddServerHandler, CurrentServerHandler, ExitServerHandler, HelpHandler, ListServerHandler, RemoveServerHandler, SSHCommandHandler, SSHServerHandler, StartHandler, } from "./handlers/index.js";
|
|
14
16
|
import { AuthMiddleware, RateLimitMiddleware } from "./middleware/index.js";
|
|
15
17
|
import { BackupService, CryptoService, HealthService, LoggingService, MonitoringService, NotificationService, RateLimiter, ValidationService, } from "./services/index.js";
|
|
18
|
+
import { InstallationWizard, shouldRunWizard } from "./wizard/index.js";
|
|
16
19
|
/**
|
|
17
20
|
* Application class with enhanced graceful shutdown
|
|
18
21
|
*/
|
|
@@ -293,6 +296,20 @@ class Application {
|
|
|
293
296
|
* Main entry point
|
|
294
297
|
*/
|
|
295
298
|
async function main() {
|
|
299
|
+
// Load .env file from config directory if it exists
|
|
300
|
+
const envPath = getEnvFilePath();
|
|
301
|
+
if (existsSync(envPath)) {
|
|
302
|
+
dotenvConfig({ path: envPath });
|
|
303
|
+
}
|
|
304
|
+
// Check if installation wizard should run
|
|
305
|
+
if (shouldRunWizard()) {
|
|
306
|
+
console.log("");
|
|
307
|
+
console.log("First-time setup detected. Launching installation wizard...");
|
|
308
|
+
const wizard = new InstallationWizard();
|
|
309
|
+
await wizard.run();
|
|
310
|
+
// Reload environment after wizard creates .env file
|
|
311
|
+
dotenvConfig({ path: envPath, override: true });
|
|
312
|
+
}
|
|
296
313
|
const app = new Application();
|
|
297
314
|
// Track if we're already shutting down
|
|
298
315
|
let isShuttingDown = false;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installation Wizard - Main wizard class
|
|
3
|
+
* Orchestrates the interactive configuration setup process
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Installation wizard class
|
|
7
|
+
* Handles the interactive setup process for first-time configuration
|
|
8
|
+
*/
|
|
9
|
+
export declare class InstallationWizard {
|
|
10
|
+
private readonly envPath;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Check if the wizard should run
|
|
14
|
+
* Returns true if .env file is missing or required variables are missing
|
|
15
|
+
*/
|
|
16
|
+
static shouldRun(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Run the installation wizard
|
|
19
|
+
* Guides user through configuration and creates .env file
|
|
20
|
+
*/
|
|
21
|
+
run(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Save the configuration to .env file
|
|
24
|
+
*/
|
|
25
|
+
private saveConfiguration;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if the installation wizard should run
|
|
29
|
+
* Convenience function for external use
|
|
30
|
+
*/
|
|
31
|
+
export declare function shouldRunWizard(): boolean;
|
|
32
|
+
//# sourceMappingURL=InstallationWizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallationWizard.d.ts","sourceRoot":"","sources":["../../src/wizard/InstallationWizard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;IAMjC;;;OAGG;IACH,MAAM,CAAC,SAAS,IAAI,OAAO;IAmB3B;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C1B;;OAEG;YACW,iBAAiB;CAahC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installation Wizard - Main wizard class
|
|
3
|
+
* Orchestrates the interactive configuration setup process
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { generateEncryptionKey, getEnvFilePath, writeEnvFile, } from "../../scripts/setup-env.js";
|
|
7
|
+
import { displaySummary, promptConfirmation, runPrompts } from "./prompts.js";
|
|
8
|
+
/**
|
|
9
|
+
* Installation wizard class
|
|
10
|
+
* Handles the interactive setup process for first-time configuration
|
|
11
|
+
*/
|
|
12
|
+
export class InstallationWizard {
|
|
13
|
+
envPath;
|
|
14
|
+
constructor() {
|
|
15
|
+
this.envPath = getEnvFilePath();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Check if the wizard should run
|
|
19
|
+
* Returns true if .env file is missing or required variables are missing
|
|
20
|
+
*/
|
|
21
|
+
static shouldRun() {
|
|
22
|
+
const envPath = getEnvFilePath();
|
|
23
|
+
// If .env file doesn't exist, wizard should run
|
|
24
|
+
if (!existsSync(envPath)) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
// Check for required environment variables
|
|
28
|
+
const requiredVars = ["BOT_TOKEN", "BOT_CHAT_ID", "ENCRYPTION_KEY"];
|
|
29
|
+
for (const varName of requiredVars) {
|
|
30
|
+
if (!process.env[varName]) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Run the installation wizard
|
|
38
|
+
* Guides user through configuration and creates .env file
|
|
39
|
+
*/
|
|
40
|
+
async run() {
|
|
41
|
+
try {
|
|
42
|
+
// Collect configuration from user
|
|
43
|
+
const config = await runPrompts(generateEncryptionKey);
|
|
44
|
+
// Display summary
|
|
45
|
+
displaySummary(config, this.envPath);
|
|
46
|
+
// Confirm and save
|
|
47
|
+
const confirmed = await promptConfirmation();
|
|
48
|
+
if (!confirmed) {
|
|
49
|
+
console.log("");
|
|
50
|
+
console.log("Configuration not saved. Running wizard again...");
|
|
51
|
+
console.log("");
|
|
52
|
+
// Run wizard again
|
|
53
|
+
await this.run();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
// Write the .env file
|
|
57
|
+
await this.saveConfiguration(config);
|
|
58
|
+
console.log("");
|
|
59
|
+
console.log("✓ Configuration saved successfully!");
|
|
60
|
+
console.log(` File: ${this.envPath}`);
|
|
61
|
+
console.log("");
|
|
62
|
+
console.log("Starting application...");
|
|
63
|
+
console.log("");
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (error instanceof Error) {
|
|
67
|
+
if (error.message === "User cancelled the wizard") {
|
|
68
|
+
console.log("");
|
|
69
|
+
console.log("Wizard cancelled. Exiting...");
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
throw new Error("Wizard failed with unknown error");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Save the configuration to .env file
|
|
79
|
+
*/
|
|
80
|
+
async saveConfiguration(config) {
|
|
81
|
+
writeEnvFile({
|
|
82
|
+
botToken: config.botToken,
|
|
83
|
+
botChatId: config.botChatId,
|
|
84
|
+
botOwnerIds: config.botOwnerIds,
|
|
85
|
+
encryptionKey: config.encryptionKey,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check if the installation wizard should run
|
|
91
|
+
* Convenience function for external use
|
|
92
|
+
*/
|
|
93
|
+
export function shouldRunWizard() {
|
|
94
|
+
return InstallationWizard.shouldRun();
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=InstallationWizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallationWizard.js","sourceRoot":"","sources":["../../src/wizard/InstallationWizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installation Wizard Module
|
|
3
|
+
* Provides interactive configuration setup for first-time users
|
|
4
|
+
*/
|
|
5
|
+
export { InstallationWizard, shouldRunWizard } from "./InstallationWizard.js";
|
|
6
|
+
export { displaySummary, promptConfirmation, runPrompts } from "./prompts.js";
|
|
7
|
+
export type { WizardConfig } from "./prompts.js";
|
|
8
|
+
export { parseOwnerIds, validateBotToken, validateChatId, validateEncryptionKey, validateOwnerIds, } from "./validators.js";
|
|
9
|
+
export type { ValidationResult } from "./validators.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9E,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installation Wizard Module
|
|
3
|
+
* Provides interactive configuration setup for first-time users
|
|
4
|
+
*/
|
|
5
|
+
export { InstallationWizard, shouldRunWizard } from "./InstallationWizard.js";
|
|
6
|
+
export { displaySummary, promptConfirmation, runPrompts } from "./prompts.js";
|
|
7
|
+
export { parseOwnerIds, validateBotToken, validateChatId, validateEncryptionKey, validateOwnerIds, } from "./validators.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive prompt definitions for the installation wizard
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Wizard configuration values collected from user
|
|
6
|
+
*/
|
|
7
|
+
export interface WizardConfig {
|
|
8
|
+
botToken: string;
|
|
9
|
+
botChatId: string;
|
|
10
|
+
botOwnerIds: string[];
|
|
11
|
+
encryptionKey: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Display the welcome banner
|
|
15
|
+
*/
|
|
16
|
+
export declare function displayWelcomeBanner(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Display a summary of the collected configuration
|
|
19
|
+
*/
|
|
20
|
+
export declare function displaySummary(config: WizardConfig, envPath: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Prompt for bot token with validation
|
|
23
|
+
*/
|
|
24
|
+
export declare function promptBotToken(): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Prompt for chat ID with validation
|
|
27
|
+
*/
|
|
28
|
+
export declare function promptChatId(): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Prompt for owner IDs (optional)
|
|
31
|
+
*/
|
|
32
|
+
export declare function promptOwnerIds(): Promise<string[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Prompt for encryption key choice and value
|
|
35
|
+
*/
|
|
36
|
+
export declare function promptEncryptionKey(generateKey: () => string): Promise<string>;
|
|
37
|
+
/**
|
|
38
|
+
* Prompt for confirmation to save configuration
|
|
39
|
+
*/
|
|
40
|
+
export declare function promptConfirmation(): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Run all prompts to collect wizard configuration
|
|
43
|
+
*/
|
|
44
|
+
export declare function runPrompts(generateKey: () => string): Promise<WizardConfig>;
|
|
45
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/wizard/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAOD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAS3C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAc1E;AAsBD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBtD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBpD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBxD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAgDjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAa3D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAcjF"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive prompt definitions for the installation wizard
|
|
3
|
+
*/
|
|
4
|
+
import prompts from "prompts";
|
|
5
|
+
import { validateBotToken, validateChatId, validateOwnerIds, validateEncryptionKey, } from "./validators.js";
|
|
6
|
+
/**
|
|
7
|
+
* Display the welcome banner
|
|
8
|
+
*/
|
|
9
|
+
export function displayWelcomeBanner() {
|
|
10
|
+
console.log("");
|
|
11
|
+
console.log("╔═══════════════════════════════════════════════════════════════╗");
|
|
12
|
+
console.log("║ Telegram SSH Bot - Installation Wizard ║");
|
|
13
|
+
console.log("╚═══════════════════════════════════════════════════════════════╝");
|
|
14
|
+
console.log("");
|
|
15
|
+
console.log("Welcome! This wizard will help you set up your bot configuration.");
|
|
16
|
+
console.log("Press Ctrl+C at any time to exit.");
|
|
17
|
+
console.log("");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Display a summary of the collected configuration
|
|
21
|
+
*/
|
|
22
|
+
export function displaySummary(config, envPath) {
|
|
23
|
+
console.log("");
|
|
24
|
+
console.log("─────────────────────────────────────────────");
|
|
25
|
+
console.log("Configuration Summary:");
|
|
26
|
+
console.log("─────────────────────────────────────────────");
|
|
27
|
+
console.log(` BOT_TOKEN: ${maskToken(config.botToken)}`);
|
|
28
|
+
console.log(` BOT_CHAT_ID: ${config.botChatId}`);
|
|
29
|
+
console.log(` BOT_OWNER_IDS: ${config.botOwnerIds.length > 0 ? config.botOwnerIds.join(", ") : "(none)"}`);
|
|
30
|
+
console.log(` ENCRYPTION_KEY: ${maskEncryptionKey(config.encryptionKey)}`);
|
|
31
|
+
console.log("─────────────────────────────────────────────");
|
|
32
|
+
console.log(`Config location: ${envPath}`);
|
|
33
|
+
console.log("");
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Mask a bot token for display (show first 10 chars and last 4)
|
|
37
|
+
*/
|
|
38
|
+
function maskToken(token) {
|
|
39
|
+
if (token.length <= 14) {
|
|
40
|
+
return token.substring(0, 4) + "...";
|
|
41
|
+
}
|
|
42
|
+
return token.substring(0, 10) + "..." + token.substring(token.length - 4);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Mask an encryption key for display
|
|
46
|
+
*/
|
|
47
|
+
function maskEncryptionKey(key) {
|
|
48
|
+
if (key.length <= 16) {
|
|
49
|
+
return "[hidden]";
|
|
50
|
+
}
|
|
51
|
+
return key.substring(0, 8) + "..." + key.substring(key.length - 8);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Prompt for bot token with validation
|
|
55
|
+
*/
|
|
56
|
+
export async function promptBotToken() {
|
|
57
|
+
const response = await prompts({
|
|
58
|
+
type: "password",
|
|
59
|
+
name: "token",
|
|
60
|
+
message: "Enter your Telegram Bot Token",
|
|
61
|
+
hint: "Get this from @BotFather on Telegram",
|
|
62
|
+
validate: (value) => {
|
|
63
|
+
const result = validateBotToken(value);
|
|
64
|
+
return result.valid ? true : result.error || "Invalid token";
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
if (response.token === undefined) {
|
|
68
|
+
throw new Error("User cancelled the wizard");
|
|
69
|
+
}
|
|
70
|
+
return response.token.trim();
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Prompt for chat ID with validation
|
|
74
|
+
*/
|
|
75
|
+
export async function promptChatId() {
|
|
76
|
+
const response = await prompts({
|
|
77
|
+
type: "text",
|
|
78
|
+
name: "chatId",
|
|
79
|
+
message: "Enter your Chat ID",
|
|
80
|
+
hint: "Use @userinfobot to find your Chat ID",
|
|
81
|
+
validate: (value) => {
|
|
82
|
+
const result = validateChatId(value);
|
|
83
|
+
return result.valid ? true : result.error || "Invalid chat ID";
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
if (response.chatId === undefined) {
|
|
87
|
+
throw new Error("User cancelled the wizard");
|
|
88
|
+
}
|
|
89
|
+
return response.chatId.trim();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Prompt for owner IDs (optional)
|
|
93
|
+
*/
|
|
94
|
+
export async function promptOwnerIds() {
|
|
95
|
+
const response = await prompts({
|
|
96
|
+
type: "text",
|
|
97
|
+
name: "ownerIds",
|
|
98
|
+
message: "Enter Owner IDs (comma-separated, optional)",
|
|
99
|
+
hint: "These users will have full bot access. Press Enter to skip.",
|
|
100
|
+
validate: (value) => {
|
|
101
|
+
const result = validateOwnerIds(value);
|
|
102
|
+
return result.valid ? true : result.error || "Invalid owner IDs";
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
if (response.ownerIds === undefined) {
|
|
106
|
+
throw new Error("User cancelled the wizard");
|
|
107
|
+
}
|
|
108
|
+
const trimmed = response.ownerIds.trim();
|
|
109
|
+
if (!trimmed) {
|
|
110
|
+
return [];
|
|
111
|
+
}
|
|
112
|
+
return trimmed
|
|
113
|
+
.split(",")
|
|
114
|
+
.map((id) => id.trim())
|
|
115
|
+
.filter((id) => id.length > 0);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Prompt for encryption key choice and value
|
|
119
|
+
*/
|
|
120
|
+
export async function promptEncryptionKey(generateKey) {
|
|
121
|
+
// First, ask if user wants to auto-generate or enter manually
|
|
122
|
+
const choiceResponse = await prompts({
|
|
123
|
+
type: "select",
|
|
124
|
+
name: "choice",
|
|
125
|
+
message: "Encryption Key",
|
|
126
|
+
choices: [
|
|
127
|
+
{
|
|
128
|
+
title: "Auto-generate a secure key (recommended)",
|
|
129
|
+
value: "generate",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
title: "Enter my own key",
|
|
133
|
+
value: "manual",
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
initial: 0,
|
|
137
|
+
});
|
|
138
|
+
if (choiceResponse.choice === undefined) {
|
|
139
|
+
throw new Error("User cancelled the wizard");
|
|
140
|
+
}
|
|
141
|
+
const choice = choiceResponse.choice;
|
|
142
|
+
if (choice === "generate") {
|
|
143
|
+
const key = generateKey();
|
|
144
|
+
console.log(` Generated key: ${key}`);
|
|
145
|
+
return key;
|
|
146
|
+
}
|
|
147
|
+
// Manual entry
|
|
148
|
+
const keyResponse = await prompts({
|
|
149
|
+
type: "password",
|
|
150
|
+
name: "key",
|
|
151
|
+
message: "Enter your encryption key",
|
|
152
|
+
hint: "Must be exactly 64 hex characters (32 bytes)",
|
|
153
|
+
validate: (value) => {
|
|
154
|
+
const result = validateEncryptionKey(value);
|
|
155
|
+
return result.valid ? true : result.error || "Invalid encryption key";
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
if (keyResponse.key === undefined) {
|
|
159
|
+
throw new Error("User cancelled the wizard");
|
|
160
|
+
}
|
|
161
|
+
return keyResponse.key.trim();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Prompt for confirmation to save configuration
|
|
165
|
+
*/
|
|
166
|
+
export async function promptConfirmation() {
|
|
167
|
+
const response = await prompts({
|
|
168
|
+
type: "confirm",
|
|
169
|
+
name: "confirm",
|
|
170
|
+
message: "Save this configuration?",
|
|
171
|
+
initial: true,
|
|
172
|
+
});
|
|
173
|
+
if (response.confirm === undefined) {
|
|
174
|
+
throw new Error("User cancelled the wizard");
|
|
175
|
+
}
|
|
176
|
+
return response.confirm;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Run all prompts to collect wizard configuration
|
|
180
|
+
*/
|
|
181
|
+
export async function runPrompts(generateKey) {
|
|
182
|
+
displayWelcomeBanner();
|
|
183
|
+
const botToken = await promptBotToken();
|
|
184
|
+
const botChatId = await promptChatId();
|
|
185
|
+
const botOwnerIds = await promptOwnerIds();
|
|
186
|
+
const encryptionKey = await promptEncryptionKey(generateKey);
|
|
187
|
+
return {
|
|
188
|
+
botToken,
|
|
189
|
+
botChatId,
|
|
190
|
+
botOwnerIds,
|
|
191
|
+
encryptionKey,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/wizard/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input validation functions for the installation wizard
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validation result interface
|
|
6
|
+
*/
|
|
7
|
+
export interface ValidationResult {
|
|
8
|
+
valid: boolean;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Validate Telegram bot token format
|
|
13
|
+
* Expected format: \d+:[A-Za-z0-9_-]+
|
|
14
|
+
* Example: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
|
|
15
|
+
*
|
|
16
|
+
* @param token - The bot token to validate
|
|
17
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateBotToken(token: string): ValidationResult;
|
|
20
|
+
/**
|
|
21
|
+
* Validate Telegram chat ID
|
|
22
|
+
* Must be a numeric string (can be negative for groups/channels)
|
|
23
|
+
*
|
|
24
|
+
* @param chatId - The chat ID to validate
|
|
25
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
26
|
+
*/
|
|
27
|
+
export declare function validateChatId(chatId: string): ValidationResult;
|
|
28
|
+
/**
|
|
29
|
+
* Validate owner IDs (comma-separated list of numeric IDs)
|
|
30
|
+
*
|
|
31
|
+
* @param ownerIds - Comma-separated owner IDs to validate
|
|
32
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
33
|
+
*/
|
|
34
|
+
export declare function validateOwnerIds(ownerIds: string): ValidationResult;
|
|
35
|
+
/**
|
|
36
|
+
* Validate encryption key
|
|
37
|
+
* Must be a 64-character hex string
|
|
38
|
+
*
|
|
39
|
+
* @param key - The encryption key to validate
|
|
40
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
41
|
+
*/
|
|
42
|
+
export declare function validateEncryptionKey(key: string): ValidationResult;
|
|
43
|
+
/**
|
|
44
|
+
* Parse owner IDs string into array
|
|
45
|
+
*
|
|
46
|
+
* @param ownerIds - Comma-separated owner IDs
|
|
47
|
+
* @returns Array of owner ID strings
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseOwnerIds(ownerIds: string): string[];
|
|
50
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/wizard/validators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAkBhE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAa/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAsBnE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAgBnE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input validation functions for the installation wizard
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate Telegram bot token format
|
|
6
|
+
* Expected format: \d+:[A-Za-z0-9_-]+
|
|
7
|
+
* Example: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
|
|
8
|
+
*
|
|
9
|
+
* @param token - The bot token to validate
|
|
10
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
11
|
+
*/
|
|
12
|
+
export function validateBotToken(token) {
|
|
13
|
+
if (!token || token.trim().length === 0) {
|
|
14
|
+
return { valid: false, error: "Bot token is required" };
|
|
15
|
+
}
|
|
16
|
+
const trimmed = token.trim();
|
|
17
|
+
// Telegram bot token format: number:alphanumeric_chars
|
|
18
|
+
const tokenRegex = /^\d+:[A-Za-z0-9_-]+$/;
|
|
19
|
+
if (!tokenRegex.test(trimmed)) {
|
|
20
|
+
return {
|
|
21
|
+
valid: false,
|
|
22
|
+
error: "Invalid token format. Expected format: 123456789:ABCdefGHI...",
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return { valid: true };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate Telegram chat ID
|
|
29
|
+
* Must be a numeric string (can be negative for groups/channels)
|
|
30
|
+
*
|
|
31
|
+
* @param chatId - The chat ID to validate
|
|
32
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
33
|
+
*/
|
|
34
|
+
export function validateChatId(chatId) {
|
|
35
|
+
if (!chatId || chatId.trim().length === 0) {
|
|
36
|
+
return { valid: false, error: "Chat ID is required" };
|
|
37
|
+
}
|
|
38
|
+
const trimmed = chatId.trim();
|
|
39
|
+
// Chat ID must be numeric (can be negative for groups/channels)
|
|
40
|
+
if (!/^-?\d+$/.test(trimmed)) {
|
|
41
|
+
return { valid: false, error: "Chat ID must be a number" };
|
|
42
|
+
}
|
|
43
|
+
return { valid: true };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validate owner IDs (comma-separated list of numeric IDs)
|
|
47
|
+
*
|
|
48
|
+
* @param ownerIds - Comma-separated owner IDs to validate
|
|
49
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
50
|
+
*/
|
|
51
|
+
export function validateOwnerIds(ownerIds) {
|
|
52
|
+
if (!ownerIds || ownerIds.trim().length === 0) {
|
|
53
|
+
// Owner IDs are optional - empty is valid
|
|
54
|
+
return { valid: true };
|
|
55
|
+
}
|
|
56
|
+
const trimmed = ownerIds.trim();
|
|
57
|
+
const ids = trimmed.split(",").map((id) => id.trim());
|
|
58
|
+
for (const id of ids) {
|
|
59
|
+
if (id.length === 0) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (!/^\d+$/.test(id)) {
|
|
63
|
+
return {
|
|
64
|
+
valid: false,
|
|
65
|
+
error: "Owner IDs must be numbers separated by commas",
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return { valid: true };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Validate encryption key
|
|
73
|
+
* Must be a 64-character hex string
|
|
74
|
+
*
|
|
75
|
+
* @param key - The encryption key to validate
|
|
76
|
+
* @returns ValidationResult indicating success or failure with error message
|
|
77
|
+
*/
|
|
78
|
+
export function validateEncryptionKey(key) {
|
|
79
|
+
if (!key || key.trim().length === 0) {
|
|
80
|
+
return { valid: false, error: "Encryption key is required" };
|
|
81
|
+
}
|
|
82
|
+
const trimmed = key.trim();
|
|
83
|
+
// Must be exactly 64 hex characters (32 bytes)
|
|
84
|
+
if (!/^[a-fA-F0-9]{64}$/.test(trimmed)) {
|
|
85
|
+
return {
|
|
86
|
+
valid: false,
|
|
87
|
+
error: "Encryption key must be exactly 64 hex characters",
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return { valid: true };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Parse owner IDs string into array
|
|
94
|
+
*
|
|
95
|
+
* @param ownerIds - Comma-separated owner IDs
|
|
96
|
+
* @returns Array of owner ID strings
|
|
97
|
+
*/
|
|
98
|
+
export function parseOwnerIds(ownerIds) {
|
|
99
|
+
if (!ownerIds || ownerIds.trim().length === 0) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
return ownerIds
|
|
103
|
+
.split(",")
|
|
104
|
+
.map((id) => id.trim())
|
|
105
|
+
.filter((id) => id.length > 0);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/wizard/validators.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "telegram-ssh-bot",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "A Telegram bot for secure SSH server management and remote command execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -64,11 +64,13 @@
|
|
|
64
64
|
"dotenv": "^16.3.1",
|
|
65
65
|
"joi": "^17.11.0",
|
|
66
66
|
"node-telegram-bot-api": "^0.61.0",
|
|
67
|
+
"prompts": "^2.4.2",
|
|
67
68
|
"ssh2": "^1.14.0"
|
|
68
69
|
},
|
|
69
70
|
"devDependencies": {
|
|
70
71
|
"@types/node": "^20.10.0",
|
|
71
72
|
"@types/node-telegram-bot-api": "^0.61.0",
|
|
73
|
+
"@types/prompts": "^2.4.9",
|
|
72
74
|
"@types/ssh2": "^1.15.0",
|
|
73
75
|
"@yao-pkg/pkg": "^5.11.0",
|
|
74
76
|
"nodemon": "^3.0.1",
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type declarations for setup-env.js
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export function getConfigDir(): string;
|
|
6
|
+
export function getEnvFilePath(): string;
|
|
7
|
+
export function getEnvExamplePath(): string | null;
|
|
8
|
+
export function ensureConfigDir(): string;
|
|
9
|
+
export function generateEncryptionKey(): string;
|
|
10
|
+
export function envFileExists(): boolean;
|
|
11
|
+
export function createEnvFile(options?: { generateKey?: boolean }): boolean;
|
|
12
|
+
export function writeEnvFile(values: {
|
|
13
|
+
botToken: string;
|
|
14
|
+
botChatId: string;
|
|
15
|
+
botOwnerIds: string[];
|
|
16
|
+
encryptionKey: string;
|
|
17
|
+
}): boolean;
|
|
18
|
+
export function main(options?: {
|
|
19
|
+
force?: boolean;
|
|
20
|
+
generateKey?: boolean;
|
|
21
|
+
silent?: boolean;
|
|
22
|
+
}): {
|
|
23
|
+
success: boolean;
|
|
24
|
+
created: boolean;
|
|
25
|
+
envPath: string;
|
|
26
|
+
configDir: string;
|
|
27
|
+
message: string;
|
|
28
|
+
};
|
package/scripts/setup-env.js
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
import { randomBytes } from "crypto";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
copyFileSync,
|
|
10
|
+
existsSync,
|
|
11
|
+
mkdirSync,
|
|
12
|
+
readFileSync,
|
|
13
|
+
writeFileSync,
|
|
14
14
|
} from "fs";
|
|
15
15
|
import { homedir } from "os";
|
|
16
16
|
import { join } from "path";
|
|
@@ -164,6 +164,62 @@ MONITORING_INTERVAL_MS=300000
|
|
|
164
164
|
return true;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
/**
|
|
168
|
+
* Write a .env file with specific values
|
|
169
|
+
* Used by the installation wizard
|
|
170
|
+
* @param {Object} values - Configuration values
|
|
171
|
+
* @param {string} values.botToken - Telegram bot token
|
|
172
|
+
* @param {string} values.botChatId - Telegram chat ID
|
|
173
|
+
* @param {string[]} values.botOwnerIds - Array of owner IDs
|
|
174
|
+
* @param {string} values.encryptionKey - Encryption key (64 hex chars)
|
|
175
|
+
* @returns {boolean} True if the file was written successfully
|
|
176
|
+
*/
|
|
177
|
+
export function writeEnvFile(values) {
|
|
178
|
+
const { botToken, botChatId, botOwnerIds, encryptionKey } = values;
|
|
179
|
+
|
|
180
|
+
// Ensure config directory exists
|
|
181
|
+
ensureConfigDir();
|
|
182
|
+
|
|
183
|
+
const envPath = getEnvFilePath();
|
|
184
|
+
|
|
185
|
+
// Build .env content
|
|
186
|
+
const envContent = `# Telegram Bot Configuration
|
|
187
|
+
BOT_TOKEN=${botToken}
|
|
188
|
+
BOT_CHAT_ID=${botChatId}
|
|
189
|
+
BOT_OWNER_IDS=${botOwnerIds.join(",")}
|
|
190
|
+
|
|
191
|
+
# Security
|
|
192
|
+
ENCRYPTION_KEY=${encryptionKey}
|
|
193
|
+
|
|
194
|
+
# SSH Configuration
|
|
195
|
+
SSH_DEFAULT_PORT=22
|
|
196
|
+
SSH_CONNECTION_TIMEOUT=30000
|
|
197
|
+
SSH_COMMAND_TIMEOUT=30000
|
|
198
|
+
SSH_DEFAULT_PRIVATE_KEY_PATH=
|
|
199
|
+
|
|
200
|
+
# Rate Limiting
|
|
201
|
+
RATE_LIMIT_ENABLED=true
|
|
202
|
+
RATE_LIMIT_WINDOW_MS=60000
|
|
203
|
+
RATE_LIMIT_MAX_REQUESTS=100
|
|
204
|
+
|
|
205
|
+
# Backup
|
|
206
|
+
BACKUP_ENABLED=true
|
|
207
|
+
BACKUP_INTERVAL_MS=3600000
|
|
208
|
+
BACKUP_MAX_COUNT=10
|
|
209
|
+
|
|
210
|
+
# Monitoring
|
|
211
|
+
MONITORING_ENABLED=true
|
|
212
|
+
MONITORING_INTERVAL_MS=300000
|
|
213
|
+
|
|
214
|
+
# Logging
|
|
215
|
+
LOG_LEVEL=info
|
|
216
|
+
LOG_FORMAT=json
|
|
217
|
+
`;
|
|
218
|
+
|
|
219
|
+
writeFileSync(envPath, envContent);
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
|
|
167
223
|
/**
|
|
168
224
|
* Main function to set up the environment
|
|
169
225
|
* @param {Object} options - Setup options
|