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.
Files changed (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -2
  3. package/dist/index.js +7 -1
  4. package/package.json +18 -6
  5. package/src/__tests__/core/sync.test.ts +42 -0
  6. package/src/__tests__/core/workspace.test.ts +180 -0
  7. package/src/commands/deploy.ts +122 -83
  8. package/src/commands/init.ts +1 -1
  9. package/src/config/loader.ts +1 -1
  10. package/src/config/schema.ts +1 -1
  11. package/src/core/ssh.ts +2 -0
  12. package/src/core/sync.ts +64 -23
  13. package/src/core/workspace.ts +111 -6
  14. package/src/index.ts +8 -1
  15. package/dist/__tests__/core/backup.test.d.ts +0 -2
  16. package/dist/__tests__/core/backup.test.d.ts.map +0 -1
  17. package/dist/__tests__/core/backup.test.js +0 -108
  18. package/dist/__tests__/core/backup.test.js.map +0 -1
  19. package/dist/__tests__/core/health.test.d.ts +0 -2
  20. package/dist/__tests__/core/health.test.d.ts.map +0 -1
  21. package/dist/__tests__/core/health.test.js +0 -97
  22. package/dist/__tests__/core/health.test.js.map +0 -1
  23. package/dist/__tests__/core/lock.test.d.ts +0 -2
  24. package/dist/__tests__/core/lock.test.d.ts.map +0 -1
  25. package/dist/__tests__/core/lock.test.js +0 -136
  26. package/dist/__tests__/core/lock.test.js.map +0 -1
  27. package/dist/__tests__/core/nginx-multi-domain.test.d.ts +0 -2
  28. package/dist/__tests__/core/nginx-multi-domain.test.d.ts.map +0 -1
  29. package/dist/__tests__/core/nginx-multi-domain.test.js +0 -158
  30. package/dist/__tests__/core/nginx-multi-domain.test.js.map +0 -1
  31. package/dist/__tests__/runtimes/pm2.test.d.ts +0 -2
  32. package/dist/__tests__/runtimes/pm2.test.d.ts.map +0 -1
  33. package/dist/__tests__/runtimes/pm2.test.js +0 -111
  34. package/dist/__tests__/runtimes/pm2.test.js.map +0 -1
  35. package/dist/__tests__/utils/validation.test.d.ts +0 -2
  36. package/dist/__tests__/utils/validation.test.d.ts.map +0 -1
  37. package/dist/__tests__/utils/validation.test.js +0 -136
  38. package/dist/__tests__/utils/validation.test.js.map +0 -1
  39. package/dist/commands/deploy.d.ts +0 -11
  40. package/dist/commands/deploy.d.ts.map +0 -1
  41. package/dist/commands/deploy.js +0 -636
  42. package/dist/commands/deploy.js.map +0 -1
  43. package/dist/commands/env.d.ts +0 -21
  44. package/dist/commands/env.d.ts.map +0 -1
  45. package/dist/commands/env.js +0 -317
  46. package/dist/commands/env.js.map +0 -1
  47. package/dist/commands/expose.d.ts +0 -6
  48. package/dist/commands/expose.d.ts.map +0 -1
  49. package/dist/commands/expose.js +0 -379
  50. package/dist/commands/expose.js.map +0 -1
  51. package/dist/commands/init.d.ts +0 -2
  52. package/dist/commands/init.d.ts.map +0 -1
  53. package/dist/commands/init.js +0 -175
  54. package/dist/commands/init.js.map +0 -1
  55. package/dist/commands/logs.d.ts +0 -10
  56. package/dist/commands/logs.d.ts.map +0 -1
  57. package/dist/commands/logs.js +0 -75
  58. package/dist/commands/logs.js.map +0 -1
  59. package/dist/commands/rollback.d.ts +0 -6
  60. package/dist/commands/rollback.d.ts.map +0 -1
  61. package/dist/commands/rollback.js +0 -113
  62. package/dist/commands/rollback.js.map +0 -1
  63. package/dist/commands/server/info.d.ts +0 -2
  64. package/dist/commands/server/info.d.ts.map +0 -1
  65. package/dist/commands/server/info.js +0 -104
  66. package/dist/commands/server/info.js.map +0 -1
  67. package/dist/commands/server/setup.d.ts +0 -11
  68. package/dist/commands/server/setup.d.ts.map +0 -1
  69. package/dist/commands/server/setup.js +0 -161
  70. package/dist/commands/server/setup.js.map +0 -1
  71. package/dist/commands/status.d.ts +0 -6
  72. package/dist/commands/status.d.ts.map +0 -1
  73. package/dist/commands/status.js +0 -120
  74. package/dist/commands/status.js.map +0 -1
  75. package/dist/config/loader.d.ts +0 -21
  76. package/dist/config/loader.d.ts.map +0 -1
  77. package/dist/config/loader.js +0 -54
  78. package/dist/config/loader.js.map +0 -1
  79. package/dist/config/schema.d.ts +0 -323
  80. package/dist/config/schema.d.ts.map +0 -1
  81. package/dist/config/schema.js +0 -108
  82. package/dist/config/schema.js.map +0 -1
  83. package/dist/core/backup.d.ts +0 -34
  84. package/dist/core/backup.d.ts.map +0 -1
  85. package/dist/core/backup.js +0 -95
  86. package/dist/core/backup.js.map +0 -1
  87. package/dist/core/health.d.ts +0 -31
  88. package/dist/core/health.d.ts.map +0 -1
  89. package/dist/core/health.js +0 -78
  90. package/dist/core/health.js.map +0 -1
  91. package/dist/core/local.d.ts +0 -19
  92. package/dist/core/local.d.ts.map +0 -1
  93. package/dist/core/local.js +0 -50
  94. package/dist/core/local.js.map +0 -1
  95. package/dist/core/lock.d.ts +0 -28
  96. package/dist/core/lock.d.ts.map +0 -1
  97. package/dist/core/lock.js +0 -89
  98. package/dist/core/lock.js.map +0 -1
  99. package/dist/core/nginx.d.ts +0 -43
  100. package/dist/core/nginx.d.ts.map +0 -1
  101. package/dist/core/nginx.js +0 -131
  102. package/dist/core/nginx.js.map +0 -1
  103. package/dist/core/ssh.d.ts +0 -79
  104. package/dist/core/ssh.d.ts.map +0 -1
  105. package/dist/core/ssh.js +0 -264
  106. package/dist/core/ssh.js.map +0 -1
  107. package/dist/core/sync.d.ts +0 -25
  108. package/dist/core/sync.d.ts.map +0 -1
  109. package/dist/core/sync.js +0 -117
  110. package/dist/core/sync.js.map +0 -1
  111. package/dist/core/workspace.d.ts +0 -13
  112. package/dist/core/workspace.d.ts.map +0 -1
  113. package/dist/core/workspace.js +0 -141
  114. package/dist/core/workspace.js.map +0 -1
  115. package/dist/index.d.ts +0 -3
  116. package/dist/index.d.ts.map +0 -1
  117. package/dist/index.js.map +0 -1
  118. package/dist/runtimes/base.d.ts +0 -115
  119. package/dist/runtimes/base.d.ts.map +0 -1
  120. package/dist/runtimes/base.js +0 -16
  121. package/dist/runtimes/base.js.map +0 -1
  122. package/dist/runtimes/nodejs/detector.d.ts +0 -47
  123. package/dist/runtimes/nodejs/detector.d.ts.map +0 -1
  124. package/dist/runtimes/nodejs/detector.js +0 -143
  125. package/dist/runtimes/nodejs/detector.js.map +0 -1
  126. package/dist/runtimes/nodejs/index.d.ts +0 -14
  127. package/dist/runtimes/nodejs/index.d.ts.map +0 -1
  128. package/dist/runtimes/nodejs/index.js +0 -213
  129. package/dist/runtimes/nodejs/index.js.map +0 -1
  130. package/dist/runtimes/nodejs/pm2.d.ts +0 -17
  131. package/dist/runtimes/nodejs/pm2.d.ts.map +0 -1
  132. package/dist/runtimes/nodejs/pm2.js +0 -60
  133. package/dist/runtimes/nodejs/pm2.js.map +0 -1
  134. package/dist/runtimes/registry.d.ts +0 -34
  135. package/dist/runtimes/registry.d.ts.map +0 -1
  136. package/dist/runtimes/registry.js +0 -58
  137. package/dist/runtimes/registry.js.map +0 -1
  138. package/dist/utils/logger.d.ts +0 -47
  139. package/dist/utils/logger.d.ts.map +0 -1
  140. package/dist/utils/logger.js +0 -76
  141. package/dist/utils/logger.js.map +0 -1
  142. package/dist/utils/validation.d.ts +0 -32
  143. package/dist/utils/validation.d.ts.map +0 -1
  144. package/dist/utils/validation.js +0 -125
  145. 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
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -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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"}
@@ -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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"}
@@ -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"}