hostfn 0.1.4 → 0.1.7
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/LICENSE +21 -0
- package/README.md +1 -2
- package/dist/index.js +7 -1
- package/package.json +18 -6
- package/src/__tests__/core/sync.test.ts +42 -0
- package/src/__tests__/core/workspace.test.ts +180 -0
- package/src/commands/deploy.ts +122 -83
- package/src/commands/init.ts +1 -1
- package/src/config/loader.ts +1 -1
- package/src/config/schema.ts +1 -1
- package/src/core/ssh.ts +2 -0
- package/src/core/sync.ts +64 -23
- package/src/core/workspace.ts +111 -6
- package/src/index.ts +8 -1
- package/dist/__tests__/core/backup.test.d.ts +0 -2
- package/dist/__tests__/core/backup.test.d.ts.map +0 -1
- package/dist/__tests__/core/backup.test.js +0 -108
- package/dist/__tests__/core/backup.test.js.map +0 -1
- package/dist/__tests__/core/health.test.d.ts +0 -2
- package/dist/__tests__/core/health.test.d.ts.map +0 -1
- package/dist/__tests__/core/health.test.js +0 -97
- package/dist/__tests__/core/health.test.js.map +0 -1
- package/dist/__tests__/core/lock.test.d.ts +0 -2
- package/dist/__tests__/core/lock.test.d.ts.map +0 -1
- package/dist/__tests__/core/lock.test.js +0 -136
- package/dist/__tests__/core/lock.test.js.map +0 -1
- package/dist/__tests__/core/nginx-multi-domain.test.d.ts +0 -2
- package/dist/__tests__/core/nginx-multi-domain.test.d.ts.map +0 -1
- package/dist/__tests__/core/nginx-multi-domain.test.js +0 -158
- package/dist/__tests__/core/nginx-multi-domain.test.js.map +0 -1
- package/dist/__tests__/runtimes/pm2.test.d.ts +0 -2
- package/dist/__tests__/runtimes/pm2.test.d.ts.map +0 -1
- package/dist/__tests__/runtimes/pm2.test.js +0 -111
- package/dist/__tests__/runtimes/pm2.test.js.map +0 -1
- package/dist/__tests__/utils/validation.test.d.ts +0 -2
- package/dist/__tests__/utils/validation.test.d.ts.map +0 -1
- package/dist/__tests__/utils/validation.test.js +0 -136
- package/dist/__tests__/utils/validation.test.js.map +0 -1
- package/dist/commands/deploy.d.ts +0 -11
- package/dist/commands/deploy.d.ts.map +0 -1
- package/dist/commands/deploy.js +0 -636
- package/dist/commands/deploy.js.map +0 -1
- package/dist/commands/env.d.ts +0 -21
- package/dist/commands/env.d.ts.map +0 -1
- package/dist/commands/env.js +0 -317
- package/dist/commands/env.js.map +0 -1
- package/dist/commands/expose.d.ts +0 -6
- package/dist/commands/expose.d.ts.map +0 -1
- package/dist/commands/expose.js +0 -379
- package/dist/commands/expose.js.map +0 -1
- package/dist/commands/init.d.ts +0 -2
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -175
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -10
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/logs.js +0 -75
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/rollback.d.ts +0 -6
- package/dist/commands/rollback.d.ts.map +0 -1
- package/dist/commands/rollback.js +0 -113
- package/dist/commands/rollback.js.map +0 -1
- package/dist/commands/server/info.d.ts +0 -2
- package/dist/commands/server/info.d.ts.map +0 -1
- package/dist/commands/server/info.js +0 -104
- package/dist/commands/server/info.js.map +0 -1
- package/dist/commands/server/setup.d.ts +0 -11
- package/dist/commands/server/setup.d.ts.map +0 -1
- package/dist/commands/server/setup.js +0 -161
- package/dist/commands/server/setup.js.map +0 -1
- package/dist/commands/status.d.ts +0 -6
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -120
- package/dist/commands/status.js.map +0 -1
- package/dist/config/loader.d.ts +0 -21
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -54
- package/dist/config/loader.js.map +0 -1
- package/dist/config/schema.d.ts +0 -323
- package/dist/config/schema.d.ts.map +0 -1
- package/dist/config/schema.js +0 -108
- package/dist/config/schema.js.map +0 -1
- package/dist/core/backup.d.ts +0 -34
- package/dist/core/backup.d.ts.map +0 -1
- package/dist/core/backup.js +0 -95
- package/dist/core/backup.js.map +0 -1
- package/dist/core/health.d.ts +0 -31
- package/dist/core/health.d.ts.map +0 -1
- package/dist/core/health.js +0 -78
- package/dist/core/health.js.map +0 -1
- package/dist/core/local.d.ts +0 -19
- package/dist/core/local.d.ts.map +0 -1
- package/dist/core/local.js +0 -50
- package/dist/core/local.js.map +0 -1
- package/dist/core/lock.d.ts +0 -28
- package/dist/core/lock.d.ts.map +0 -1
- package/dist/core/lock.js +0 -89
- package/dist/core/lock.js.map +0 -1
- package/dist/core/nginx.d.ts +0 -43
- package/dist/core/nginx.d.ts.map +0 -1
- package/dist/core/nginx.js +0 -131
- package/dist/core/nginx.js.map +0 -1
- package/dist/core/ssh.d.ts +0 -79
- package/dist/core/ssh.d.ts.map +0 -1
- package/dist/core/ssh.js +0 -264
- package/dist/core/ssh.js.map +0 -1
- package/dist/core/sync.d.ts +0 -25
- package/dist/core/sync.d.ts.map +0 -1
- package/dist/core/sync.js +0 -117
- package/dist/core/sync.js.map +0 -1
- package/dist/core/workspace.d.ts +0 -13
- package/dist/core/workspace.d.ts.map +0 -1
- package/dist/core/workspace.js +0 -141
- package/dist/core/workspace.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/runtimes/base.d.ts +0 -115
- package/dist/runtimes/base.d.ts.map +0 -1
- package/dist/runtimes/base.js +0 -16
- package/dist/runtimes/base.js.map +0 -1
- package/dist/runtimes/nodejs/detector.d.ts +0 -47
- package/dist/runtimes/nodejs/detector.d.ts.map +0 -1
- package/dist/runtimes/nodejs/detector.js +0 -143
- package/dist/runtimes/nodejs/detector.js.map +0 -1
- package/dist/runtimes/nodejs/index.d.ts +0 -14
- package/dist/runtimes/nodejs/index.d.ts.map +0 -1
- package/dist/runtimes/nodejs/index.js +0 -213
- package/dist/runtimes/nodejs/index.js.map +0 -1
- package/dist/runtimes/nodejs/pm2.d.ts +0 -17
- package/dist/runtimes/nodejs/pm2.d.ts.map +0 -1
- package/dist/runtimes/nodejs/pm2.js +0 -60
- package/dist/runtimes/nodejs/pm2.js.map +0 -1
- package/dist/runtimes/registry.d.ts +0 -34
- package/dist/runtimes/registry.d.ts.map +0 -1
- package/dist/runtimes/registry.js +0 -58
- package/dist/runtimes/registry.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -47
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -76
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -32
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -125
- package/dist/utils/validation.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/runtimes/base.d.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { Runtime } from '../config/schema.js';
|
|
2
|
-
/**
|
|
3
|
-
* Base interface for runtime adapters
|
|
4
|
-
* Each runtime (Node.js, Python, Go, etc.) implements this interface
|
|
5
|
-
*/
|
|
6
|
-
export interface RuntimeAdapter {
|
|
7
|
-
/**
|
|
8
|
-
* Runtime identifier
|
|
9
|
-
*/
|
|
10
|
-
readonly name: Runtime;
|
|
11
|
-
/**
|
|
12
|
-
* Detect if this runtime is used in the project
|
|
13
|
-
* @param cwd Project directory
|
|
14
|
-
* @returns Detection result with confidence score
|
|
15
|
-
*/
|
|
16
|
-
detect(cwd: string): Promise<RuntimeDetectionResult>;
|
|
17
|
-
/**
|
|
18
|
-
* Get default configuration for this runtime
|
|
19
|
-
* @param cwd Project directory
|
|
20
|
-
* @returns Partial configuration with smart defaults
|
|
21
|
-
*/
|
|
22
|
-
getDefaultConfig(cwd: string): Promise<Partial<RuntimeConfig>>;
|
|
23
|
-
/**
|
|
24
|
-
* Generate server setup script for this runtime
|
|
25
|
-
* @param version Runtime version
|
|
26
|
-
* @param options Additional setup options
|
|
27
|
-
* @returns Shell script content
|
|
28
|
-
*/
|
|
29
|
-
generateSetupScript(version: string, options?: SetupOptions): string;
|
|
30
|
-
/**
|
|
31
|
-
* Get process manager command (PM2, systemd, etc.)
|
|
32
|
-
*/
|
|
33
|
-
getProcessManager(): ProcessManager;
|
|
34
|
-
/**
|
|
35
|
-
* Validate runtime-specific configuration
|
|
36
|
-
* @param config Runtime configuration
|
|
37
|
-
* @returns Validation errors (empty if valid)
|
|
38
|
-
*/
|
|
39
|
-
validateConfig(config: RuntimeConfig): string[];
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Runtime detection result
|
|
43
|
-
*/
|
|
44
|
-
export interface RuntimeDetectionResult {
|
|
45
|
-
detected: boolean;
|
|
46
|
-
confidence: number;
|
|
47
|
-
version?: string;
|
|
48
|
-
framework?: string;
|
|
49
|
-
packageManager?: string;
|
|
50
|
-
metadata?: Record<string, unknown>;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Runtime configuration
|
|
54
|
-
*/
|
|
55
|
-
export interface RuntimeConfig {
|
|
56
|
-
name: string;
|
|
57
|
-
runtime: Runtime;
|
|
58
|
-
version: string;
|
|
59
|
-
build?: {
|
|
60
|
-
command: string;
|
|
61
|
-
directory: string;
|
|
62
|
-
};
|
|
63
|
-
start: {
|
|
64
|
-
command: string;
|
|
65
|
-
entry?: string;
|
|
66
|
-
};
|
|
67
|
-
port?: number;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Server setup options
|
|
71
|
-
*/
|
|
72
|
-
export interface SetupOptions {
|
|
73
|
-
port?: number;
|
|
74
|
-
environment?: string;
|
|
75
|
-
installRedis?: boolean;
|
|
76
|
-
nodeModulesMode?: 'all' | 'production' | 'none';
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Process manager interface
|
|
80
|
-
*/
|
|
81
|
-
export interface ProcessManager {
|
|
82
|
-
name: string;
|
|
83
|
-
/**
|
|
84
|
-
* Generate start command
|
|
85
|
-
*/
|
|
86
|
-
generateStartCommand(config: RuntimeConfig, environment: string): string;
|
|
87
|
-
/**
|
|
88
|
-
* Generate reload command (zero-downtime)
|
|
89
|
-
*/
|
|
90
|
-
generateReloadCommand(serviceName: string): string;
|
|
91
|
-
/**
|
|
92
|
-
* Generate stop command
|
|
93
|
-
*/
|
|
94
|
-
generateStopCommand(serviceName: string): string;
|
|
95
|
-
/**
|
|
96
|
-
* Generate status command
|
|
97
|
-
*/
|
|
98
|
-
generateStatusCommand(serviceName: string): string;
|
|
99
|
-
/**
|
|
100
|
-
* Generate logs command
|
|
101
|
-
*/
|
|
102
|
-
generateLogsCommand(serviceName: string, lines?: number): string;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Abstract base class for runtime adapters
|
|
106
|
-
*/
|
|
107
|
-
export declare abstract class BaseRuntimeAdapter implements RuntimeAdapter {
|
|
108
|
-
abstract readonly name: Runtime;
|
|
109
|
-
abstract detect(cwd: string): Promise<RuntimeDetectionResult>;
|
|
110
|
-
abstract getDefaultConfig(cwd: string): Promise<Partial<RuntimeConfig>>;
|
|
111
|
-
abstract generateSetupScript(version: string, options?: SetupOptions): string;
|
|
112
|
-
abstract getProcessManager(): ProcessManager;
|
|
113
|
-
validateConfig(config: RuntimeConfig): string[];
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runtimes/base.ts"],"names":[],"mappings":"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"}
|
package/dist/runtimes/base.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Abstract base class for runtime adapters
|
|
3
|
-
*/
|
|
4
|
-
export class BaseRuntimeAdapter {
|
|
5
|
-
validateConfig(config) {
|
|
6
|
-
const errors = [];
|
|
7
|
-
if (!config.name) {
|
|
8
|
-
errors.push('Application name is required');
|
|
9
|
-
}
|
|
10
|
-
if (!config.start?.command) {
|
|
11
|
-
errors.push('Start command is required');
|
|
12
|
-
}
|
|
13
|
-
return errors;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/runtimes/base.ts"],"names":[],"mappings":"AAuHA;;GAEG;AACH,MAAM,OAAgB,kBAAkB;IAQtC,cAAc,CAAC,MAAqB;QAClC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { RuntimeDetectionResult } from '../base.js';
|
|
2
|
-
interface PackageJson {
|
|
3
|
-
name?: string;
|
|
4
|
-
version?: string;
|
|
5
|
-
dependencies?: Record<string, string>;
|
|
6
|
-
devDependencies?: Record<string, string>;
|
|
7
|
-
scripts?: Record<string, string>;
|
|
8
|
-
engines?: {
|
|
9
|
-
node?: string;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export declare class NodeJSDetector {
|
|
13
|
-
/**
|
|
14
|
-
* Detect Node.js project
|
|
15
|
-
*/
|
|
16
|
-
static detect(cwd: string): Promise<RuntimeDetectionResult>;
|
|
17
|
-
/**
|
|
18
|
-
* Detect framework from dependencies
|
|
19
|
-
*/
|
|
20
|
-
private static detectFramework;
|
|
21
|
-
/**
|
|
22
|
-
* Detect package manager
|
|
23
|
-
*/
|
|
24
|
-
private static detectPackageManager;
|
|
25
|
-
/**
|
|
26
|
-
* Detect Node.js version from engines
|
|
27
|
-
*/
|
|
28
|
-
private static detectNodeVersion;
|
|
29
|
-
/**
|
|
30
|
-
* Check if project uses TypeScript
|
|
31
|
-
*/
|
|
32
|
-
private static hasTypeScript;
|
|
33
|
-
/**
|
|
34
|
-
* Extract build command from package.json
|
|
35
|
-
*/
|
|
36
|
-
static getBuildCommand(pkg: PackageJson): string | undefined;
|
|
37
|
-
/**
|
|
38
|
-
* Extract start command from package.json
|
|
39
|
-
*/
|
|
40
|
-
static getStartCommand(pkg: PackageJson): string;
|
|
41
|
-
/**
|
|
42
|
-
* Read package.json
|
|
43
|
-
*/
|
|
44
|
-
static readPackageJson(cwd: string): PackageJson | null;
|
|
45
|
-
}
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=detector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../src/runtimes/nodejs/detector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,qBAAa,cAAc;IACzB;;OAEG;WACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAuCjE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAOnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS;IAW5D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;IAWhD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;CAcxD"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { readFileSync, existsSync } from 'fs';
|
|
2
|
-
import { resolve } from 'path';
|
|
3
|
-
export class NodeJSDetector {
|
|
4
|
-
/**
|
|
5
|
-
* Detect Node.js project
|
|
6
|
-
*/
|
|
7
|
-
static async detect(cwd) {
|
|
8
|
-
const packageJsonPath = resolve(cwd, 'package.json');
|
|
9
|
-
if (!existsSync(packageJsonPath)) {
|
|
10
|
-
return {
|
|
11
|
-
detected: false,
|
|
12
|
-
confidence: 0,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
try {
|
|
16
|
-
const content = readFileSync(packageJsonPath, 'utf-8');
|
|
17
|
-
const pkg = JSON.parse(content);
|
|
18
|
-
// Determine framework
|
|
19
|
-
const framework = this.detectFramework(pkg);
|
|
20
|
-
const packageManager = this.detectPackageManager(cwd);
|
|
21
|
-
const version = this.detectNodeVersion(pkg);
|
|
22
|
-
return {
|
|
23
|
-
detected: true,
|
|
24
|
-
confidence: 100, // package.json exists = 100% Node.js
|
|
25
|
-
version,
|
|
26
|
-
framework,
|
|
27
|
-
packageManager,
|
|
28
|
-
metadata: {
|
|
29
|
-
hasTypeScript: this.hasTypeScript(pkg),
|
|
30
|
-
hasScripts: Object.keys(pkg.scripts || {}).length > 0,
|
|
31
|
-
dependencies: Object.keys(pkg.dependencies || {}).length,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
return {
|
|
37
|
-
detected: false,
|
|
38
|
-
confidence: 0,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Detect framework from dependencies
|
|
44
|
-
*/
|
|
45
|
-
static detectFramework(pkg) {
|
|
46
|
-
const allDeps = {
|
|
47
|
-
...pkg.dependencies,
|
|
48
|
-
...pkg.devDependencies,
|
|
49
|
-
};
|
|
50
|
-
// Check for common frameworks (order matters - more specific first)
|
|
51
|
-
if (allDeps['next'])
|
|
52
|
-
return 'next';
|
|
53
|
-
if (allDeps['@nestjs/core'])
|
|
54
|
-
return 'nestjs';
|
|
55
|
-
if (allDeps['hono'])
|
|
56
|
-
return 'hono';
|
|
57
|
-
if (allDeps['fastify'])
|
|
58
|
-
return 'fastify';
|
|
59
|
-
if (allDeps['express'])
|
|
60
|
-
return 'express';
|
|
61
|
-
if (allDeps['koa'])
|
|
62
|
-
return 'koa';
|
|
63
|
-
if (allDeps['@hapi/hapi'])
|
|
64
|
-
return 'hapi';
|
|
65
|
-
return 'generic';
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Detect package manager
|
|
69
|
-
*/
|
|
70
|
-
static detectPackageManager(cwd) {
|
|
71
|
-
if (existsSync(resolve(cwd, 'pnpm-lock.yaml')))
|
|
72
|
-
return 'pnpm';
|
|
73
|
-
if (existsSync(resolve(cwd, 'yarn.lock')))
|
|
74
|
-
return 'yarn';
|
|
75
|
-
if (existsSync(resolve(cwd, 'package-lock.json')))
|
|
76
|
-
return 'npm';
|
|
77
|
-
return 'npm'; // default
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Detect Node.js version from engines
|
|
81
|
-
*/
|
|
82
|
-
static detectNodeVersion(pkg) {
|
|
83
|
-
if (!pkg.engines?.node)
|
|
84
|
-
return undefined;
|
|
85
|
-
// Parse version constraint (>=18.0.0 -> 18)
|
|
86
|
-
const match = pkg.engines.node.match(/(\d+)/);
|
|
87
|
-
return match ? match[1] : undefined;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Check if project uses TypeScript
|
|
91
|
-
*/
|
|
92
|
-
static hasTypeScript(pkg) {
|
|
93
|
-
const allDeps = {
|
|
94
|
-
...pkg.dependencies,
|
|
95
|
-
...pkg.devDependencies,
|
|
96
|
-
};
|
|
97
|
-
return 'typescript' in allDeps;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Extract build command from package.json
|
|
101
|
-
*/
|
|
102
|
-
static getBuildCommand(pkg) {
|
|
103
|
-
const scripts = pkg.scripts || {};
|
|
104
|
-
// Common build script names
|
|
105
|
-
if (scripts.build)
|
|
106
|
-
return 'npm run build';
|
|
107
|
-
if (scripts.compile)
|
|
108
|
-
return 'npm run compile';
|
|
109
|
-
if (scripts['build:prod'])
|
|
110
|
-
return 'npm run build:prod';
|
|
111
|
-
return undefined;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Extract start command from package.json
|
|
115
|
-
*/
|
|
116
|
-
static getStartCommand(pkg) {
|
|
117
|
-
const scripts = pkg.scripts || {};
|
|
118
|
-
// Common start script names
|
|
119
|
-
if (scripts.start)
|
|
120
|
-
return 'npm start';
|
|
121
|
-
if (scripts['start:prod'])
|
|
122
|
-
return 'npm run start:prod';
|
|
123
|
-
// Fallback: node entry point
|
|
124
|
-
return 'node dist/index.js';
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Read package.json
|
|
128
|
-
*/
|
|
129
|
-
static readPackageJson(cwd) {
|
|
130
|
-
const packageJsonPath = resolve(cwd, 'package.json');
|
|
131
|
-
if (!existsSync(packageJsonPath)) {
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
try {
|
|
135
|
-
const content = readFileSync(packageJsonPath, 'utf-8');
|
|
136
|
-
return JSON.parse(content);
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
return null;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=detector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../../src/runtimes/nodejs/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BaseRuntimeAdapter, RuntimeDetectionResult, RuntimeConfig, SetupOptions, ProcessManager } from '../base.js';
|
|
2
|
-
import { Runtime } from '../../config/schema.js';
|
|
3
|
-
/**
|
|
4
|
-
* Node.js runtime adapter
|
|
5
|
-
*/
|
|
6
|
-
export declare class NodeJSAdapter extends BaseRuntimeAdapter {
|
|
7
|
-
readonly name: Runtime;
|
|
8
|
-
private pm2Manager;
|
|
9
|
-
detect(cwd: string): Promise<RuntimeDetectionResult>;
|
|
10
|
-
getDefaultConfig(cwd: string): Promise<Partial<RuntimeConfig>>;
|
|
11
|
-
generateSetupScript(version: string, options?: SetupOptions): string;
|
|
12
|
-
getProcessManager(): ProcessManager;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/nodejs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD;;GAEG;AACH,qBAAa,aAAc,SAAQ,kBAAkB;IACnD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAY;IAClC,OAAO,CAAC,UAAU,CAAoB;IAEhC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIpD,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAyBpE,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM;IAiLxE,iBAAiB,IAAI,cAAc;CAGpC"}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { BaseRuntimeAdapter, } from '../base.js';
|
|
2
|
-
import { NodeJSDetector } from './detector.js';
|
|
3
|
-
import { PM2Manager } from './pm2.js';
|
|
4
|
-
/**
|
|
5
|
-
* Node.js runtime adapter
|
|
6
|
-
*/
|
|
7
|
-
export class NodeJSAdapter extends BaseRuntimeAdapter {
|
|
8
|
-
name = 'nodejs';
|
|
9
|
-
pm2Manager = new PM2Manager();
|
|
10
|
-
async detect(cwd) {
|
|
11
|
-
return NodeJSDetector.detect(cwd);
|
|
12
|
-
}
|
|
13
|
-
async getDefaultConfig(cwd) {
|
|
14
|
-
const pkg = NodeJSDetector.readPackageJson(cwd);
|
|
15
|
-
if (!pkg) {
|
|
16
|
-
throw new Error('package.json not found');
|
|
17
|
-
}
|
|
18
|
-
const buildCommand = NodeJSDetector.getBuildCommand(pkg);
|
|
19
|
-
const startCommand = NodeJSDetector.getStartCommand(pkg);
|
|
20
|
-
return {
|
|
21
|
-
name: pkg.name || 'my-app',
|
|
22
|
-
runtime: 'nodejs',
|
|
23
|
-
version: pkg.engines?.node?.match(/\d+/)?.[0] || '18',
|
|
24
|
-
build: buildCommand ? {
|
|
25
|
-
command: buildCommand,
|
|
26
|
-
directory: 'dist',
|
|
27
|
-
} : undefined,
|
|
28
|
-
start: {
|
|
29
|
-
command: startCommand,
|
|
30
|
-
entry: 'dist/index.js',
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
generateSetupScript(version, options = {}) {
|
|
35
|
-
const port = options.port || 3000;
|
|
36
|
-
const env = options.environment || 'production';
|
|
37
|
-
const installRedis = options.installRedis ?? false;
|
|
38
|
-
return `#!/bin/bash
|
|
39
|
-
set -e
|
|
40
|
-
|
|
41
|
-
# Log everything to file
|
|
42
|
-
LOG_FILE="/tmp/hostfn-setup.log"
|
|
43
|
-
exec > >(tee -a "$LOG_FILE") 2>&1
|
|
44
|
-
echo "[$(date)] Starting hostfn setup..."
|
|
45
|
-
|
|
46
|
-
echo "=========================================="
|
|
47
|
-
echo "Node.js Server Setup (hostfn)"
|
|
48
|
-
echo "Environment: ${env}"
|
|
49
|
-
echo "=========================================="
|
|
50
|
-
|
|
51
|
-
# Detect OS
|
|
52
|
-
if [ -f /etc/os-release ]; then
|
|
53
|
-
. /etc/os-release
|
|
54
|
-
OS=$NAME
|
|
55
|
-
VER=$VERSION_ID
|
|
56
|
-
echo "Detected OS: $OS $VER"
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
# 1. Install Node.js via nvm
|
|
60
|
-
echo ""
|
|
61
|
-
echo "[1/7] Installing Node.js v${version} via nvm..."
|
|
62
|
-
if [ ! -d "$HOME/.nvm" ]; then
|
|
63
|
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
|
64
|
-
export NVM_DIR="$HOME/.nvm"
|
|
65
|
-
[ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh"
|
|
66
|
-
|
|
67
|
-
nvm install ${version}
|
|
68
|
-
nvm use ${version}
|
|
69
|
-
nvm alias default ${version}
|
|
70
|
-
echo "Node.js $(node --version) installed"
|
|
71
|
-
else
|
|
72
|
-
echo "nvm already installed"
|
|
73
|
-
source "$HOME/.nvm/nvm.sh"
|
|
74
|
-
nvm install ${version}
|
|
75
|
-
nvm use ${version}
|
|
76
|
-
fi
|
|
77
|
-
|
|
78
|
-
# 2. Install PM2
|
|
79
|
-
echo ""
|
|
80
|
-
echo "[2/7] Installing PM2 process manager..."
|
|
81
|
-
npm install -g pm2
|
|
82
|
-
pm2 --version
|
|
83
|
-
|
|
84
|
-
# 3. Install system dependencies
|
|
85
|
-
echo ""
|
|
86
|
-
echo "[3/7] Installing system dependencies..."
|
|
87
|
-
if command -v apt-get &> /dev/null; then
|
|
88
|
-
sudo apt-get update
|
|
89
|
-
sudo apt-get install -y nginx certbot python3-certbot-nginx rsync curl git build-essential
|
|
90
|
-
elif command -v yum &> /dev/null; then
|
|
91
|
-
sudo yum install -y nginx certbot python3-certbot-nginx rsync git gcc-c++ make
|
|
92
|
-
elif command -v dnf &> /dev/null; then
|
|
93
|
-
sudo dnf install -y nginx certbot python3-certbot-nginx rsync curl git gcc-c++ make
|
|
94
|
-
fi
|
|
95
|
-
|
|
96
|
-
# 4. Configure Nginx
|
|
97
|
-
echo ""
|
|
98
|
-
echo "[4/7] Configuring Nginx..."
|
|
99
|
-
if [ -d "/etc/nginx/sites-available" ]; then
|
|
100
|
-
NGINX_CONFIG="/etc/nginx/sites-available/hostfn-${env}"
|
|
101
|
-
sudo tee $NGINX_CONFIG > /dev/null <<'EOF'
|
|
102
|
-
server {
|
|
103
|
-
listen 80;
|
|
104
|
-
server_name _;
|
|
105
|
-
|
|
106
|
-
location / {
|
|
107
|
-
proxy_pass http://localhost:${port};
|
|
108
|
-
proxy_http_version 1.1;
|
|
109
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
110
|
-
proxy_set_header Connection 'upgrade';
|
|
111
|
-
proxy_set_header Host $host;
|
|
112
|
-
proxy_set_header X-Real-IP $remote_addr;
|
|
113
|
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
114
|
-
proxy_set_header X-Forwarded-Proto $scheme;
|
|
115
|
-
proxy_cache_bypass $http_upgrade;
|
|
116
|
-
proxy_read_timeout 60s;
|
|
117
|
-
proxy_connect_timeout 60s;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
EOF
|
|
121
|
-
sudo ln -sf $NGINX_CONFIG /etc/nginx/sites-enabled/hostfn-${env}
|
|
122
|
-
elif [ -d "/etc/nginx/conf.d" ]; then
|
|
123
|
-
NGINX_CONFIG="/etc/nginx/conf.d/hostfn-${env}.conf"
|
|
124
|
-
sudo tee $NGINX_CONFIG > /dev/null <<'EOF'
|
|
125
|
-
server {
|
|
126
|
-
listen 80 default_server;
|
|
127
|
-
server_name _;
|
|
128
|
-
|
|
129
|
-
location / {
|
|
130
|
-
proxy_pass http://localhost:${port};
|
|
131
|
-
proxy_http_version 1.1;
|
|
132
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
133
|
-
proxy_set_header Connection 'upgrade';
|
|
134
|
-
proxy_set_header Host $host;
|
|
135
|
-
proxy_set_header X-Real-IP $remote_addr;
|
|
136
|
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
137
|
-
proxy_set_header X-Forwarded-Proto $scheme;
|
|
138
|
-
proxy_cache_bypass $http_upgrade;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
EOF
|
|
142
|
-
fi
|
|
143
|
-
|
|
144
|
-
sudo nginx -t
|
|
145
|
-
sudo systemctl restart nginx
|
|
146
|
-
sudo systemctl enable nginx
|
|
147
|
-
|
|
148
|
-
${installRedis ? `
|
|
149
|
-
# 5. Install Redis (optional)
|
|
150
|
-
echo ""
|
|
151
|
-
echo "[5/7] Installing Redis..."
|
|
152
|
-
if command -v apt-get &> /dev/null; then
|
|
153
|
-
sudo apt-get install -y redis-server
|
|
154
|
-
sudo systemctl enable redis-server
|
|
155
|
-
sudo systemctl start redis-server
|
|
156
|
-
elif command -v yum &> /dev/null; then
|
|
157
|
-
sudo yum install -y redis
|
|
158
|
-
sudo systemctl enable redis
|
|
159
|
-
sudo systemctl start redis
|
|
160
|
-
fi
|
|
161
|
-
` : `
|
|
162
|
-
# 5. Skip Redis installation
|
|
163
|
-
echo ""
|
|
164
|
-
echo "[5/7] Skipping Redis installation..."
|
|
165
|
-
`}
|
|
166
|
-
|
|
167
|
-
# 6. Create deployment directories
|
|
168
|
-
echo ""
|
|
169
|
-
echo "[6/7] Creating deployment directories..."
|
|
170
|
-
sudo mkdir -p /var/www
|
|
171
|
-
sudo chown -R $USER:$USER /var/www
|
|
172
|
-
mkdir -p /var/log/pm2
|
|
173
|
-
|
|
174
|
-
# 7. Configure PM2 startup
|
|
175
|
-
echo ""
|
|
176
|
-
echo "[7/7] Configuring PM2 startup..."
|
|
177
|
-
PM2_STARTUP_CMD=$(pm2 startup | grep 'sudo' | tail -n 1)
|
|
178
|
-
if [ -n "$PM2_STARTUP_CMD" ]; then
|
|
179
|
-
eval "$PM2_STARTUP_CMD" || echo "PM2 startup configured"
|
|
180
|
-
else
|
|
181
|
-
echo "PM2 startup already configured or not needed"
|
|
182
|
-
fi
|
|
183
|
-
pm2 save
|
|
184
|
-
|
|
185
|
-
# 8. Firewall setup
|
|
186
|
-
echo ""
|
|
187
|
-
echo "[8/7] Configuring firewall..."
|
|
188
|
-
if command -v ufw &> /dev/null; then
|
|
189
|
-
sudo ufw allow 22/tcp
|
|
190
|
-
sudo ufw allow 80/tcp
|
|
191
|
-
sudo ufw allow 443/tcp
|
|
192
|
-
sudo ufw --force enable
|
|
193
|
-
fi
|
|
194
|
-
|
|
195
|
-
echo ""
|
|
196
|
-
echo "=========================================="
|
|
197
|
-
echo "✅ Server setup complete!"
|
|
198
|
-
echo "=========================================="
|
|
199
|
-
echo "Node.js: $(node --version)"
|
|
200
|
-
echo "npm: $(npm --version)"
|
|
201
|
-
echo "PM2: $(pm2 --version)"
|
|
202
|
-
echo "Nginx: Running"
|
|
203
|
-
echo "Port: ${port}"
|
|
204
|
-
echo "=========================================="
|
|
205
|
-
echo "[$(date)] Setup completed successfully"
|
|
206
|
-
echo "Log saved to: $LOG_FILE"
|
|
207
|
-
`;
|
|
208
|
-
}
|
|
209
|
-
getProcessManager() {
|
|
210
|
-
return this.pm2Manager;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/nodejs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAKnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,kBAAkB;IAC1C,IAAI,GAAY,QAAQ,CAAC;IAC1B,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEtC,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAChC,MAAM,GAAG,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAEzD,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ;YAC1B,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;YACrD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;gBACpB,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC,CAAC,SAAS;YACb,KAAK,EAAE;gBACL,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,eAAe;aACvB;SACF,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAe,EAAE,UAAwB,EAAE;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC;QAChD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QAEnD,OAAO;;;;;;;;;;qBAUU,GAAG;;;;;;;;;;;;;kCAaU,OAAO;;;;;;kBAMvB,OAAO;cACX,OAAO;wBACG,OAAO;;;;;kBAKb,OAAO;cACX,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;sDAyBiC,GAAG;;;;;;;sCAOnB,IAAI;;;;;;;;;;;;;;gEAcsB,GAAG;;6CAEtB,GAAG;;;;;;;sCAOV,IAAI;;;;;;;;;;;;;;;;;;EAkBxC,YAAY,CAAC,CAAC,CAAC;;;;;;;;;;;;;CAahB,CAAC,CAAC,CAAC;;;;CAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsCa,IAAI;;;;CAIjB,CAAC;IACA,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ProcessManager, RuntimeConfig } from '../base.js';
|
|
2
|
-
/**
|
|
3
|
-
* PM2 process manager for Node.js
|
|
4
|
-
*/
|
|
5
|
-
export declare class PM2Manager implements ProcessManager {
|
|
6
|
-
readonly name = "pm2";
|
|
7
|
-
generateStartCommand(config: RuntimeConfig, environment: string): string;
|
|
8
|
-
generateReloadCommand(serviceName: string): string;
|
|
9
|
-
generateStopCommand(serviceName: string): string;
|
|
10
|
-
generateStatusCommand(serviceName: string): string;
|
|
11
|
-
generateLogsCommand(serviceName: string, lines?: number): string;
|
|
12
|
-
/**
|
|
13
|
-
* Generate PM2 ecosystem config file content
|
|
14
|
-
*/
|
|
15
|
-
generateEcosystemConfig(config: RuntimeConfig, environment: string, envVars?: Record<string, string>): string;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=pm2.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pm2.d.ts","sourceRoot":"","sources":["../../../src/runtimes/nodejs/pm2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,IAAI,SAAS;IAEtB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAOxE,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIlD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIhD,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIlD,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,MAAM;IAIrE;;OAEG;IACH,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM;CAoClH"}
|