projax 1.0.2 → 1.3.1

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 (73) hide show
  1. package/dist/api/database.d.ts +34 -0
  2. package/dist/api/database.d.ts.map +1 -0
  3. package/dist/api/database.js +318 -0
  4. package/dist/api/database.js.map +1 -0
  5. package/dist/api/index.d.ts +5 -0
  6. package/dist/api/index.d.ts.map +1 -0
  7. package/dist/api/index.js +130 -0
  8. package/dist/api/index.js.map +1 -0
  9. package/dist/api/migrate.d.ts +2 -0
  10. package/dist/api/migrate.d.ts.map +1 -0
  11. package/dist/api/migrate.js +158 -0
  12. package/dist/api/migrate.js.map +1 -0
  13. package/dist/api/package.json +27 -0
  14. package/dist/api/routes/index.d.ts +3 -0
  15. package/dist/api/routes/index.d.ts.map +1 -0
  16. package/dist/api/routes/index.js +17 -0
  17. package/dist/api/routes/index.js.map +1 -0
  18. package/dist/api/routes/projects.d.ts +3 -0
  19. package/dist/api/routes/projects.d.ts.map +1 -0
  20. package/dist/api/routes/projects.js +198 -0
  21. package/dist/api/routes/projects.js.map +1 -0
  22. package/dist/api/routes/settings.d.ts +3 -0
  23. package/dist/api/routes/settings.d.ts.map +1 -0
  24. package/dist/api/routes/settings.js +33 -0
  25. package/dist/api/routes/settings.js.map +1 -0
  26. package/dist/api/services/scanner.d.ts +9 -0
  27. package/dist/api/services/scanner.d.ts.map +1 -0
  28. package/dist/api/services/scanner.js +172 -0
  29. package/dist/api/services/scanner.js.map +1 -0
  30. package/dist/api/types.d.ts +48 -0
  31. package/dist/api/types.d.ts.map +1 -0
  32. package/dist/api/types.js +3 -0
  33. package/dist/api/types.js.map +1 -0
  34. package/dist/core/database.d.ts +15 -5
  35. package/dist/core/database.js +136 -208
  36. package/dist/core/detector.d.ts +5 -0
  37. package/dist/core/detector.js +135 -0
  38. package/dist/core/index.d.ts +1 -2
  39. package/dist/core/index.js +2 -4
  40. package/dist/core/scanner.js +2 -105
  41. package/dist/core/settings.d.ts +50 -0
  42. package/dist/core/settings.js +102 -0
  43. package/dist/core-bridge.d.ts +2 -0
  44. package/dist/core-bridge.js +73 -0
  45. package/dist/core.d.ts +2 -0
  46. package/dist/core.js +76 -0
  47. package/dist/electron/core/database.d.ts +76 -0
  48. package/dist/electron/core/database.js +240 -0
  49. package/dist/electron/core/detector.d.ts +14 -0
  50. package/dist/electron/core/detector.js +284 -0
  51. package/dist/electron/core/index.d.ts +10 -0
  52. package/dist/electron/core/index.js +41 -0
  53. package/dist/electron/core/scanner.d.ts +8 -0
  54. package/dist/electron/core/scanner.js +11 -0
  55. package/dist/electron/core/settings.d.ts +50 -0
  56. package/dist/electron/core/settings.js +102 -0
  57. package/dist/electron/core.d.ts +2 -0
  58. package/dist/electron/core.js +76 -0
  59. package/dist/electron/main.js +93 -51
  60. package/dist/electron/port-scanner.js +4 -4
  61. package/dist/electron/preload.d.ts +1 -1
  62. package/dist/electron/renderer/assets/index-7KIJIiIM.js +42 -0
  63. package/dist/electron/renderer/assets/{index-DohAcUCg.css → index-ezVMxZrM.css} +1 -1
  64. package/dist/electron/renderer/index.html +2 -2
  65. package/dist/electron/script-runner.js +4 -4
  66. package/dist/index.js +240 -75
  67. package/dist/port-scanner.js +4 -4
  68. package/dist/script-runner.js +4 -4
  69. package/package.json +12 -11
  70. package/dist/electron/renderer/assets/index-BZ6USRnW.js +0 -42
  71. package/dist/electron/renderer/assets/index-CdMlFqhB.js +0 -42
  72. package/dist/electron/renderer/assets/index-DNtxfrZe.js +0 -42
  73. package/dist/electron/renderer/assets/index-khk3K-qG.css +0 -1
@@ -0,0 +1,34 @@
1
+ import { Project, Test, JenkinsJob, ProjectPort } from './types';
2
+ declare class JSONDatabase {
3
+ private data;
4
+ private dbPath;
5
+ constructor();
6
+ private write;
7
+ addProject(name: string, projectPath: string): Project;
8
+ getProject(id: number): Project | null;
9
+ getProjectByPath(projectPath: string): Project | null;
10
+ getAllProjects(): Project[];
11
+ updateProjectLastScanned(id: number): void;
12
+ updateProjectName(id: number, newName: string): Project;
13
+ updateProject(id: number, updates: Partial<Omit<Project, 'id' | 'created_at'>>): Project;
14
+ removeProject(id: number): void;
15
+ addTest(projectId: number, filePath: string, framework?: string | null): Test;
16
+ getTest(id: number): Test | null;
17
+ getTestsByProject(projectId: number): Test[];
18
+ removeTestsByProject(projectId: number): void;
19
+ addJenkinsJob(projectId: number, jobName: string, jobUrl: string): JenkinsJob;
20
+ getJenkinsJob(id: number): JenkinsJob | null;
21
+ getJenkinsJobsByProject(projectId: number): JenkinsJob[];
22
+ addProjectPort(projectId: number, port: number, configSource: string, scriptName?: string | null): ProjectPort;
23
+ getProjectPort(id: number): ProjectPort | null;
24
+ getProjectPorts(projectId: number): ProjectPort[];
25
+ getProjectPortsByScript(projectId: number, scriptName: string): ProjectPort[];
26
+ removeProjectPorts(projectId: number): void;
27
+ updateProjectPortLastDetected(projectId: number, port: number, scriptName: string | null): void;
28
+ getSetting(key: string): string | null;
29
+ setSetting(key: string, value: string): void;
30
+ getAllSettings(): Record<string, string>;
31
+ }
32
+ export declare function getDatabase(): JSONDatabase;
33
+ export { JSONDatabase };
34
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUjF,cAAM,YAAY;IAChB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,MAAM,CAAS;;IA4BvB,OAAO,CAAC,KAAK;IASb,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IA2BtD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAItC,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAIrD,cAAc,IAAI,OAAO,EAAE;IAI3B,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ1C,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAUvD,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,OAAO;IAexF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAU/B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IA8BnF,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKhC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE;IAO5C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO7C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAgC7E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAK5C,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAQxD,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,MAAM,GAAG,IAAW,GAC/B,WAAW;IAqCd,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK9C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;IAOjD,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAO7E,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM3C,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAc/F,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMtC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAgB5C,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAQzC;AAKD,wBAAgB,WAAW,IAAI,YAAY,CAK1C;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.JSONDatabase = void 0;
37
+ exports.getDatabase = getDatabase;
38
+ const path = __importStar(require("path"));
39
+ const os = __importStar(require("os"));
40
+ const fs = __importStar(require("fs"));
41
+ const defaultData = {
42
+ projects: [],
43
+ tests: [],
44
+ jenkins_jobs: [],
45
+ project_ports: [],
46
+ settings: [],
47
+ };
48
+ class JSONDatabase {
49
+ constructor() {
50
+ const dataDir = path.join(os.homedir(), '.projax');
51
+ // Ensure data directory exists
52
+ if (!fs.existsSync(dataDir)) {
53
+ fs.mkdirSync(dataDir, { recursive: true });
54
+ }
55
+ this.dbPath = path.join(dataDir, 'data.json');
56
+ // Load data from file or use defaults
57
+ if (fs.existsSync(this.dbPath)) {
58
+ try {
59
+ const fileContent = fs.readFileSync(this.dbPath, 'utf-8');
60
+ this.data = JSON.parse(fileContent);
61
+ }
62
+ catch (error) {
63
+ console.error('Error reading database file, using defaults:', error);
64
+ this.data = defaultData;
65
+ this.write();
66
+ }
67
+ }
68
+ else {
69
+ this.data = defaultData;
70
+ this.write();
71
+ }
72
+ }
73
+ write() {
74
+ try {
75
+ fs.writeFileSync(this.dbPath, JSON.stringify(this.data, null, 2), 'utf-8');
76
+ }
77
+ catch (error) {
78
+ console.error('Error writing database file:', error);
79
+ }
80
+ }
81
+ // Project operations
82
+ addProject(name, projectPath) {
83
+ const projects = this.data.projects;
84
+ // Check if project with same path already exists
85
+ const existing = projects.find(p => p.path === projectPath);
86
+ if (existing) {
87
+ throw new Error('Project with this path already exists');
88
+ }
89
+ const newId = projects.length > 0
90
+ ? Math.max(...projects.map(p => p.id)) + 1
91
+ : 1;
92
+ const project = {
93
+ id: newId,
94
+ name,
95
+ path: projectPath,
96
+ framework: null, // Will be detected on first scan
97
+ last_scanned: null,
98
+ created_at: Math.floor(Date.now() / 1000),
99
+ };
100
+ projects.push(project);
101
+ this.write();
102
+ return project;
103
+ }
104
+ getProject(id) {
105
+ return this.data.projects.find(p => p.id === id) || null;
106
+ }
107
+ getProjectByPath(projectPath) {
108
+ return this.data.projects.find(p => p.path === projectPath) || null;
109
+ }
110
+ getAllProjects() {
111
+ return [...this.data.projects].sort((a, b) => a.id - b.id);
112
+ }
113
+ updateProjectLastScanned(id) {
114
+ const project = this.data.projects.find(p => p.id === id);
115
+ if (project) {
116
+ project.last_scanned = Math.floor(Date.now() / 1000);
117
+ this.write();
118
+ }
119
+ }
120
+ updateProjectName(id, newName) {
121
+ const project = this.data.projects.find(p => p.id === id);
122
+ if (!project) {
123
+ throw new Error('Project not found');
124
+ }
125
+ project.name = newName;
126
+ this.write();
127
+ return project;
128
+ }
129
+ updateProject(id, updates) {
130
+ const project = this.data.projects.find(p => p.id === id);
131
+ if (!project) {
132
+ throw new Error('Project not found');
133
+ }
134
+ if (updates.name !== undefined)
135
+ project.name = updates.name;
136
+ if (updates.path !== undefined)
137
+ project.path = updates.path;
138
+ if (updates.framework !== undefined)
139
+ project.framework = updates.framework;
140
+ if (updates.last_scanned !== undefined)
141
+ project.last_scanned = updates.last_scanned;
142
+ this.write();
143
+ return project;
144
+ }
145
+ removeProject(id) {
146
+ this.data.projects = this.data.projects.filter(p => p.id !== id);
147
+ // Also remove related data
148
+ this.data.tests = this.data.tests.filter(t => t.project_id !== id);
149
+ this.data.jenkins_jobs = this.data.jenkins_jobs.filter(j => j.project_id !== id);
150
+ this.data.project_ports = this.data.project_ports.filter(p => p.project_id !== id);
151
+ this.write();
152
+ }
153
+ // Test operations
154
+ addTest(projectId, filePath, framework = null) {
155
+ const tests = this.data.tests;
156
+ // Check if test already exists
157
+ const existing = tests.find(t => t.project_id === projectId && t.file_path === filePath);
158
+ if (existing) {
159
+ existing.framework = framework;
160
+ this.write();
161
+ return existing;
162
+ }
163
+ const newId = tests.length > 0
164
+ ? Math.max(...tests.map(t => t.id)) + 1
165
+ : 1;
166
+ const test = {
167
+ id: newId,
168
+ project_id: projectId,
169
+ file_path: filePath,
170
+ framework,
171
+ status: null,
172
+ last_run: null,
173
+ created_at: Math.floor(Date.now() / 1000),
174
+ };
175
+ tests.push(test);
176
+ this.write();
177
+ return test;
178
+ }
179
+ getTest(id) {
180
+ return this.data.tests.find(t => t.id === id) || null;
181
+ }
182
+ getTestsByProject(projectId) {
183
+ return this.data.tests
184
+ .filter(t => t.project_id === projectId)
185
+ .sort((a, b) => a.file_path.localeCompare(b.file_path));
186
+ }
187
+ removeTestsByProject(projectId) {
188
+ this.data.tests = this.data.tests.filter(t => t.project_id !== projectId);
189
+ this.write();
190
+ }
191
+ // Jenkins operations
192
+ addJenkinsJob(projectId, jobName, jobUrl) {
193
+ const jobs = this.data.jenkins_jobs;
194
+ // Check if job already exists
195
+ const existing = jobs.find(j => j.project_id === projectId && j.job_name === jobName);
196
+ if (existing) {
197
+ existing.job_url = jobUrl;
198
+ this.write();
199
+ return existing;
200
+ }
201
+ const newId = jobs.length > 0
202
+ ? Math.max(...jobs.map(j => j.id)) + 1
203
+ : 1;
204
+ const job = {
205
+ id: newId,
206
+ project_id: projectId,
207
+ job_name: jobName,
208
+ job_url: jobUrl,
209
+ last_build_status: null,
210
+ last_build_number: null,
211
+ last_updated: null,
212
+ created_at: Math.floor(Date.now() / 1000),
213
+ };
214
+ jobs.push(job);
215
+ this.write();
216
+ return job;
217
+ }
218
+ getJenkinsJob(id) {
219
+ return this.data.jenkins_jobs.find(j => j.id === id) || null;
220
+ }
221
+ getJenkinsJobsByProject(projectId) {
222
+ return this.data.jenkins_jobs
223
+ .filter(j => j.project_id === projectId)
224
+ .sort((a, b) => a.job_name.localeCompare(b.job_name));
225
+ }
226
+ // Project port operations
227
+ addProjectPort(projectId, port, configSource, scriptName = null) {
228
+ const ports = this.data.project_ports;
229
+ // Check if port already exists for this project/script combination
230
+ const existing = ports.find(p => p.project_id === projectId &&
231
+ p.port === port &&
232
+ ((p.script_name === scriptName) || (p.script_name === null && scriptName === null)));
233
+ if (existing) {
234
+ existing.config_source = configSource;
235
+ existing.last_detected = Math.floor(Date.now() / 1000);
236
+ this.write();
237
+ return existing;
238
+ }
239
+ const newId = ports.length > 0
240
+ ? Math.max(...ports.map(p => p.id)) + 1
241
+ : 1;
242
+ const projectPort = {
243
+ id: newId,
244
+ project_id: projectId,
245
+ port,
246
+ script_name: scriptName,
247
+ config_source: configSource,
248
+ last_detected: Math.floor(Date.now() / 1000),
249
+ created_at: Math.floor(Date.now() / 1000),
250
+ };
251
+ ports.push(projectPort);
252
+ this.write();
253
+ return projectPort;
254
+ }
255
+ getProjectPort(id) {
256
+ return this.data.project_ports.find(p => p.id === id) || null;
257
+ }
258
+ getProjectPorts(projectId) {
259
+ return this.data.project_ports
260
+ .filter(p => p.project_id === projectId)
261
+ .sort((a, b) => a.port - b.port);
262
+ }
263
+ getProjectPortsByScript(projectId, scriptName) {
264
+ return this.data.project_ports
265
+ .filter(p => p.project_id === projectId && p.script_name === scriptName)
266
+ .sort((a, b) => a.port - b.port);
267
+ }
268
+ removeProjectPorts(projectId) {
269
+ this.data.project_ports = this.data.project_ports.filter(p => p.project_id !== projectId);
270
+ this.write();
271
+ }
272
+ updateProjectPortLastDetected(projectId, port, scriptName) {
273
+ const projectPort = this.data.project_ports.find(p => p.project_id === projectId &&
274
+ p.port === port &&
275
+ ((p.script_name === scriptName) || (p.script_name === null && scriptName === null)));
276
+ if (projectPort) {
277
+ projectPort.last_detected = Math.floor(Date.now() / 1000);
278
+ this.write();
279
+ }
280
+ }
281
+ // Settings operations
282
+ getSetting(key) {
283
+ const setting = this.data.settings.find(s => s.key === key);
284
+ return setting ? setting.value : null;
285
+ }
286
+ setSetting(key, value) {
287
+ const existing = this.data.settings.find(s => s.key === key);
288
+ if (existing) {
289
+ existing.value = value;
290
+ existing.updated_at = Math.floor(Date.now() / 1000);
291
+ }
292
+ else {
293
+ this.data.settings.push({
294
+ key,
295
+ value,
296
+ updated_at: Math.floor(Date.now() / 1000),
297
+ });
298
+ }
299
+ this.write();
300
+ }
301
+ getAllSettings() {
302
+ const settings = {};
303
+ for (const setting of this.data.settings) {
304
+ settings[setting.key] = setting.value;
305
+ }
306
+ return settings;
307
+ }
308
+ }
309
+ exports.JSONDatabase = JSONDatabase;
310
+ // Singleton instance
311
+ let dbInstance = null;
312
+ function getDatabase() {
313
+ if (!dbInstance) {
314
+ dbInstance = new JSONDatabase();
315
+ }
316
+ return dbInstance;
317
+ }
318
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Express } from 'express';
2
+ declare const app: Express;
3
+ declare function startServer(): Promise<void>;
4
+ export { app, startServer };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAS3C,QAAA,MAAM,GAAG,EAAE,OAAmB,CAAC;AA+C/B,iBAAe,WAAW,kBAwCzB;AAOD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.app = void 0;
40
+ exports.startServer = startServer;
41
+ const express_1 = __importDefault(require("express"));
42
+ const cors_1 = __importDefault(require("cors"));
43
+ const path = __importStar(require("path"));
44
+ const os = __importStar(require("os"));
45
+ const fs = __importStar(require("fs"));
46
+ const net = __importStar(require("net"));
47
+ const migrate_1 = require("./migrate");
48
+ const routes_1 = __importDefault(require("./routes"));
49
+ const app = (0, express_1.default)();
50
+ exports.app = app;
51
+ const PORT_START = 3001;
52
+ const PORT_END = 3010;
53
+ // Middleware
54
+ app.use((0, cors_1.default)());
55
+ app.use(express_1.default.json());
56
+ app.use('/api', routes_1.default);
57
+ // Health check endpoint (before /api prefix)
58
+ app.get('/health', (req, res) => {
59
+ res.json({ status: 'ok', timestamp: new Date().toISOString() });
60
+ });
61
+ // Function to check if port is available
62
+ function isPortAvailable(port) {
63
+ return new Promise((resolve) => {
64
+ const server = net.createServer();
65
+ server.listen(port, () => {
66
+ server.once('close', () => resolve(true));
67
+ server.close();
68
+ });
69
+ server.on('error', () => resolve(false));
70
+ });
71
+ }
72
+ // Function to find available port
73
+ async function findAvailablePort() {
74
+ for (let port = PORT_START; port <= PORT_END; port++) {
75
+ if (await isPortAvailable(port)) {
76
+ return port;
77
+ }
78
+ }
79
+ throw new Error(`No available port found in range ${PORT_START}-${PORT_END}`);
80
+ }
81
+ // Function to write port to file
82
+ function writePortToFile(port) {
83
+ const dataDir = path.join(os.homedir(), '.projax');
84
+ if (!fs.existsSync(dataDir)) {
85
+ fs.mkdirSync(dataDir, { recursive: true });
86
+ }
87
+ const portFile = path.join(dataDir, 'api-port.txt');
88
+ fs.writeFileSync(portFile, port.toString(), 'utf-8');
89
+ }
90
+ // Main function
91
+ async function startServer() {
92
+ try {
93
+ // Run migration if needed
94
+ const dataDir = path.join(os.homedir(), '.projax');
95
+ const jsonPath = path.join(dataDir, 'data.json');
96
+ const sqlitePath = path.join(dataDir, 'dashboard.db');
97
+ if (!fs.existsSync(jsonPath) && fs.existsSync(sqlitePath)) {
98
+ console.log('Running migration from SQLite to JSON...');
99
+ (0, migrate_1.migrateFromSQLite)();
100
+ }
101
+ // Find available port
102
+ const port = await findAvailablePort();
103
+ // Write port to file
104
+ writePortToFile(port);
105
+ // Start server
106
+ app.listen(port, () => {
107
+ console.log(`✓ API server running on http://localhost:${port}`);
108
+ console.log(` Health check: http://localhost:${port}/health`);
109
+ console.log(` API base: http://localhost:${port}/api`);
110
+ });
111
+ // Handle graceful shutdown
112
+ process.on('SIGINT', () => {
113
+ console.log('\nShutting down API server...');
114
+ process.exit(0);
115
+ });
116
+ process.on('SIGTERM', () => {
117
+ console.log('\nShutting down API server...');
118
+ process.exit(0);
119
+ });
120
+ }
121
+ catch (error) {
122
+ console.error('Failed to start API server:', error);
123
+ process.exit(1);
124
+ }
125
+ }
126
+ // Start server if this file is run directly
127
+ if (require.main === module) {
128
+ startServer();
129
+ }
130
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function migrateFromSQLite(): boolean;
2
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAmDA,wBAAgB,iBAAiB,IAAI,OAAO,CA8H3C"}