projax 1.3.0 → 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.
- package/dist/core-bridge.d.ts +2 -0
- package/dist/core-bridge.js +73 -0
- package/dist/core.d.ts +2 -0
- package/dist/core.js +76 -0
- package/dist/electron/core/database.d.ts +76 -0
- package/dist/electron/core/database.js +240 -0
- package/dist/electron/core/detector.d.ts +14 -0
- package/dist/electron/core/detector.js +284 -0
- package/dist/electron/core/index.d.ts +10 -0
- package/dist/electron/core/index.js +41 -0
- package/dist/electron/core/scanner.d.ts +8 -0
- package/dist/electron/core/scanner.js +11 -0
- package/dist/electron/core/settings.d.ts +50 -0
- package/dist/electron/core/settings.js +102 -0
- package/dist/electron/core.d.ts +2 -0
- package/dist/electron/core.js +76 -0
- package/dist/electron/main.js +14 -30
- package/dist/electron/port-scanner.js +4 -4
- package/dist/electron/script-runner.js +4 -4
- package/dist/index.js +21 -21
- package/dist/port-scanner.js +4 -4
- package/dist/script-runner.js +4 -4
- package/package.json +2 -3
- package/dist/electron/renderer/assets/index-BRymlmJj.js +0 -42
package/dist/electron/main.js
CHANGED
|
@@ -37,23 +37,7 @@ const electron_1 = require("electron");
|
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const fs = __importStar(require("fs"));
|
|
39
39
|
const child_process_1 = require("child_process");
|
|
40
|
-
|
|
41
|
-
let coreModule;
|
|
42
|
-
try {
|
|
43
|
-
// Try relative import first (when bundled in CLI: dist/electron/main.js -> ../../core/dist)
|
|
44
|
-
coreModule = require('../../core/dist');
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
try {
|
|
48
|
-
// Try alternative path (local development: packages/desktop/dist/main.js -> ../../core/dist)
|
|
49
|
-
coreModule = require('../../core/dist');
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// Last try
|
|
53
|
-
coreModule = require('../../../core/dist');
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
const { getDatabaseManager, getAllProjects, addProject, removeProject, scanProject, scanAllProjects, getTestsByProject, } = coreModule;
|
|
40
|
+
const core_1 = require("./core");
|
|
57
41
|
let mainWindow = null;
|
|
58
42
|
let apiProcess = null;
|
|
59
43
|
// Prevent multiple instances
|
|
@@ -193,7 +177,7 @@ electron_1.app.on('before-quit', () => {
|
|
|
193
177
|
electron_1.ipcMain.handle('get-projects', async () => {
|
|
194
178
|
try {
|
|
195
179
|
console.log('Getting projects from database...');
|
|
196
|
-
const projects = getAllProjects();
|
|
180
|
+
const projects = (0, core_1.getAllProjects)();
|
|
197
181
|
console.log(`Found ${projects.length} project(s)`);
|
|
198
182
|
return projects;
|
|
199
183
|
}
|
|
@@ -209,7 +193,7 @@ electron_1.ipcMain.handle('add-project', async (_, projectPath) => {
|
|
|
209
193
|
if (!fs.statSync(projectPath).isDirectory()) {
|
|
210
194
|
throw new Error('Path must be a directory');
|
|
211
195
|
}
|
|
212
|
-
const db = getDatabaseManager();
|
|
196
|
+
const db = (0, core_1.getDatabaseManager)();
|
|
213
197
|
const existingProject = db.getProjectByPath(projectPath);
|
|
214
198
|
if (existingProject) {
|
|
215
199
|
throw new Error('Project already exists');
|
|
@@ -218,18 +202,18 @@ electron_1.ipcMain.handle('add-project', async (_, projectPath) => {
|
|
|
218
202
|
return db.addProject(projectName, projectPath);
|
|
219
203
|
});
|
|
220
204
|
electron_1.ipcMain.handle('remove-project', async (_, projectId) => {
|
|
221
|
-
removeProject(projectId);
|
|
205
|
+
(0, core_1.removeProject)(projectId);
|
|
222
206
|
});
|
|
223
207
|
electron_1.ipcMain.handle('scan-project', async (_, projectId) => {
|
|
224
|
-
return scanProject(projectId);
|
|
208
|
+
return (0, core_1.scanProject)(projectId);
|
|
225
209
|
});
|
|
226
210
|
electron_1.ipcMain.handle('scan-all-projects', async () => {
|
|
227
|
-
return scanAllProjects();
|
|
211
|
+
return (0, core_1.scanAllProjects)();
|
|
228
212
|
});
|
|
229
213
|
electron_1.ipcMain.handle('get-tests', async (_, projectId) => {
|
|
230
214
|
try {
|
|
231
|
-
const db = getDatabaseManager();
|
|
232
|
-
return getTestsByProject(projectId);
|
|
215
|
+
const db = (0, core_1.getDatabaseManager)();
|
|
216
|
+
return (0, core_1.getTestsByProject)(projectId);
|
|
233
217
|
}
|
|
234
218
|
catch (error) {
|
|
235
219
|
console.error('Error getting tests:', error);
|
|
@@ -270,7 +254,7 @@ electron_1.ipcMain.handle('close-window', () => {
|
|
|
270
254
|
});
|
|
271
255
|
// Rename project
|
|
272
256
|
electron_1.ipcMain.handle('rename-project', async (_, projectId, newName) => {
|
|
273
|
-
const db = getDatabaseManager();
|
|
257
|
+
const db = (0, core_1.getDatabaseManager)();
|
|
274
258
|
return db.updateProjectName(projectId, newName);
|
|
275
259
|
});
|
|
276
260
|
// Get project scripts
|
|
@@ -312,7 +296,7 @@ electron_1.ipcMain.handle('run-script', async (_, projectPath, scriptName, args
|
|
|
312
296
|
scriptRunnerPath = localScriptRunnerPath;
|
|
313
297
|
}
|
|
314
298
|
const { runScriptInBackground } = await Promise.resolve(`${scriptRunnerPath}`).then(s => __importStar(require(s)));
|
|
315
|
-
const db = getDatabaseManager();
|
|
299
|
+
const db = (0, core_1.getDatabaseManager)();
|
|
316
300
|
const project = db.getProjectByPath(projectPath);
|
|
317
301
|
if (!project) {
|
|
318
302
|
throw new Error('Project not found');
|
|
@@ -336,7 +320,7 @@ electron_1.ipcMain.handle('scan-project-ports', async (_, projectId) => {
|
|
|
336
320
|
}
|
|
337
321
|
const { scanProjectPorts } = await Promise.resolve(`${portScannerPath}`).then(s => __importStar(require(s)));
|
|
338
322
|
await scanProjectPorts(projectId);
|
|
339
|
-
const db = getDatabaseManager();
|
|
323
|
+
const db = (0, core_1.getDatabaseManager)();
|
|
340
324
|
return db.getProjectPorts(projectId);
|
|
341
325
|
});
|
|
342
326
|
electron_1.ipcMain.handle('scan-all-ports', async () => {
|
|
@@ -353,8 +337,8 @@ electron_1.ipcMain.handle('scan-all-ports', async () => {
|
|
|
353
337
|
}
|
|
354
338
|
const { scanAllProjectPorts } = await Promise.resolve(`${portScannerPath}`).then(s => __importStar(require(s)));
|
|
355
339
|
await scanAllProjectPorts();
|
|
356
|
-
const db = getDatabaseManager();
|
|
357
|
-
const projects = getAllProjects();
|
|
340
|
+
const db = (0, core_1.getDatabaseManager)();
|
|
341
|
+
const projects = (0, core_1.getAllProjects)();
|
|
358
342
|
const result = {};
|
|
359
343
|
for (const project of projects) {
|
|
360
344
|
result[project.id] = db.getProjectPorts(project.id);
|
|
@@ -363,7 +347,7 @@ electron_1.ipcMain.handle('scan-all-ports', async () => {
|
|
|
363
347
|
});
|
|
364
348
|
// Get project ports
|
|
365
349
|
electron_1.ipcMain.handle('get-project-ports', async (_, projectId) => {
|
|
366
|
-
const db = getDatabaseManager();
|
|
350
|
+
const db = (0, core_1.getDatabaseManager)();
|
|
367
351
|
return db.getProjectPorts(projectId);
|
|
368
352
|
});
|
|
369
353
|
// Get running processes
|
|
@@ -36,14 +36,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.scanProjectPorts = scanProjectPorts;
|
|
37
37
|
exports.scanAllProjectPorts = scanAllProjectPorts;
|
|
38
38
|
exports.shouldRescanPorts = shouldRescanPorts;
|
|
39
|
-
const
|
|
39
|
+
const core_bridge_1 = require("./core-bridge");
|
|
40
40
|
const port_extractor_1 = require("./port-extractor");
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
/**
|
|
43
43
|
* Scan and index ports for a specific project
|
|
44
44
|
*/
|
|
45
45
|
async function scanProjectPorts(projectId) {
|
|
46
|
-
const db = (0,
|
|
46
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
47
47
|
const project = db.getProject(projectId);
|
|
48
48
|
if (!project) {
|
|
49
49
|
throw new Error(`Project with id ${projectId} not found`);
|
|
@@ -64,7 +64,7 @@ async function scanProjectPorts(projectId) {
|
|
|
64
64
|
* Scan ports for all projects
|
|
65
65
|
*/
|
|
66
66
|
async function scanAllProjectPorts() {
|
|
67
|
-
const db = (0,
|
|
67
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
68
68
|
const projects = db.getAllProjects();
|
|
69
69
|
for (const project of projects) {
|
|
70
70
|
try {
|
|
@@ -81,7 +81,7 @@ async function scanAllProjectPorts() {
|
|
|
81
81
|
* Returns true if ports haven't been scanned in the last 24 hours
|
|
82
82
|
*/
|
|
83
83
|
function shouldRescanPorts(projectId) {
|
|
84
|
-
const db = (0,
|
|
84
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
85
85
|
const ports = db.getProjectPorts(projectId);
|
|
86
86
|
if (ports.length === 0) {
|
|
87
87
|
return true; // No ports found, should scan
|
|
@@ -48,7 +48,7 @@ const fs = __importStar(require("fs"));
|
|
|
48
48
|
const path = __importStar(require("path"));
|
|
49
49
|
const os = __importStar(require("os"));
|
|
50
50
|
const child_process_1 = require("child_process");
|
|
51
|
-
const
|
|
51
|
+
const core_bridge_1 = require("./core-bridge");
|
|
52
52
|
const port_utils_1 = require("./port-utils");
|
|
53
53
|
/**
|
|
54
54
|
* Detect the project type based on files in the directory
|
|
@@ -324,7 +324,7 @@ async function handlePortConflict(port, projectName, force) {
|
|
|
324
324
|
* Check ports proactively before script execution
|
|
325
325
|
*/
|
|
326
326
|
async function checkPortsBeforeExecution(projectPath, scriptName, force) {
|
|
327
|
-
const db = (0,
|
|
327
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
328
328
|
const project = db.getProjectByPath(projectPath);
|
|
329
329
|
if (!project)
|
|
330
330
|
return true; // Can't check if project not in DB
|
|
@@ -447,7 +447,7 @@ function runScript(projectPath, scriptName, args = [], force = false) {
|
|
|
447
447
|
const errorOutput = stderrOutput + stdoutOutput;
|
|
448
448
|
const port = (0, port_utils_1.extractPortFromError)(errorOutput);
|
|
449
449
|
if (port) {
|
|
450
|
-
const db = (0,
|
|
450
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
451
451
|
const project = db.getProjectByPath(projectPath);
|
|
452
452
|
const projectName = project?.name || 'project';
|
|
453
453
|
const resolved = await handlePortConflict(port, projectName, force);
|
|
@@ -801,7 +801,7 @@ function runScriptInBackground(projectPath, projectName, scriptName, args = [],
|
|
|
801
801
|
// Also check for URLs from detected ports
|
|
802
802
|
setTimeout(async () => {
|
|
803
803
|
try {
|
|
804
|
-
const db = (0,
|
|
804
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
805
805
|
const project = db.getProjectByPath(projectPath);
|
|
806
806
|
if (project) {
|
|
807
807
|
const ports = db.getProjectPorts(project.id);
|
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ const commander_1 = require("commander");
|
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const fs = __importStar(require("fs"));
|
|
40
40
|
const http = __importStar(require("http"));
|
|
41
|
-
const
|
|
41
|
+
const core_bridge_1 = require("./core-bridge");
|
|
42
42
|
const script_runner_1 = require("./script-runner");
|
|
43
43
|
const port_scanner_1 = require("./port-scanner");
|
|
44
44
|
// Read version from package.json
|
|
@@ -228,7 +228,7 @@ program
|
|
|
228
228
|
console.error(`Error: Path is not a directory: ${resolvedPath}`);
|
|
229
229
|
process.exit(1);
|
|
230
230
|
}
|
|
231
|
-
const db = (0,
|
|
231
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
232
232
|
const existingProject = db.getProjectByPath(resolvedPath);
|
|
233
233
|
if (existingProject) {
|
|
234
234
|
console.log(`Project already exists: ${existingProject.name} (ID: ${existingProject.id})`);
|
|
@@ -273,7 +273,7 @@ program
|
|
|
273
273
|
]);
|
|
274
274
|
if (scanAnswer.scan) {
|
|
275
275
|
console.log('Scanning for tests...');
|
|
276
|
-
const result = (0,
|
|
276
|
+
const result = (0, core_bridge_1.scanProject)(project.id);
|
|
277
277
|
console.log(`✓ Found ${result.testsFound} test file(s)`);
|
|
278
278
|
if (result.tests.length > 0) {
|
|
279
279
|
console.log(' Test files:');
|
|
@@ -314,8 +314,8 @@ program
|
|
|
314
314
|
.option('--ports', 'Show detailed port information per script')
|
|
315
315
|
.action(async (options) => {
|
|
316
316
|
try {
|
|
317
|
-
const db = (0,
|
|
318
|
-
const projects = (0,
|
|
317
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
318
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
319
319
|
if (projects.length === 0) {
|
|
320
320
|
console.log('No projects tracked yet. Use "prx add" to add a project.');
|
|
321
321
|
return;
|
|
@@ -422,17 +422,17 @@ program
|
|
|
422
422
|
.argument('[project]', 'Project ID or name to scan (leave empty to scan all)')
|
|
423
423
|
.action(async (projectIdentifier) => {
|
|
424
424
|
try {
|
|
425
|
-
const db = (0,
|
|
425
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
426
426
|
if (projectIdentifier) {
|
|
427
427
|
// Find project by ID or name
|
|
428
|
-
const projects = (0,
|
|
428
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
429
429
|
const project = projects.find((p) => p.id.toString() === projectIdentifier || p.name === projectIdentifier);
|
|
430
430
|
if (!project) {
|
|
431
431
|
console.error(`Error: Project not found: ${projectIdentifier}`);
|
|
432
432
|
process.exit(1);
|
|
433
433
|
}
|
|
434
434
|
console.log(`Scanning project: ${project.name}...`);
|
|
435
|
-
const result = (0,
|
|
435
|
+
const result = (0, core_bridge_1.scanProject)(project.id);
|
|
436
436
|
console.log(`✓ Found ${result.testsFound} test file(s)`);
|
|
437
437
|
if (result.tests.length > 0) {
|
|
438
438
|
console.log('\nTest files:');
|
|
@@ -461,7 +461,7 @@ program
|
|
|
461
461
|
else {
|
|
462
462
|
// Scan all projects
|
|
463
463
|
console.log('Scanning all projects...\n');
|
|
464
|
-
const results = (0,
|
|
464
|
+
const results = (0, core_bridge_1.scanAllProjects)();
|
|
465
465
|
for (const result of results) {
|
|
466
466
|
console.log(`${result.project.name}: ${result.testsFound} test file(s)`);
|
|
467
467
|
}
|
|
@@ -493,8 +493,8 @@ program
|
|
|
493
493
|
.argument('<newName>', 'New name for the project')
|
|
494
494
|
.action((projectIdentifier, newName) => {
|
|
495
495
|
try {
|
|
496
|
-
const db = (0,
|
|
497
|
-
const projects = (0,
|
|
496
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
497
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
498
498
|
const project = projects.find(p => p.id.toString() === projectIdentifier || p.name === projectIdentifier);
|
|
499
499
|
if (!project) {
|
|
500
500
|
console.error(`Error: Project not found: ${projectIdentifier}`);
|
|
@@ -521,8 +521,8 @@ program
|
|
|
521
521
|
.option('-f, --force', 'Skip confirmation')
|
|
522
522
|
.action(async (projectIdentifier, options) => {
|
|
523
523
|
try {
|
|
524
|
-
const db = (0,
|
|
525
|
-
const projects = (0,
|
|
524
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
525
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
526
526
|
const project = projects.find(p => p.id.toString() === projectIdentifier || p.name === projectIdentifier);
|
|
527
527
|
if (!project) {
|
|
528
528
|
console.error(`Error: Project not found: ${projectIdentifier}`);
|
|
@@ -543,7 +543,7 @@ program
|
|
|
543
543
|
return;
|
|
544
544
|
}
|
|
545
545
|
}
|
|
546
|
-
(0,
|
|
546
|
+
(0, core_bridge_1.removeProject)(project.id);
|
|
547
547
|
console.log(`✓ Removed project: ${project.name}`);
|
|
548
548
|
}
|
|
549
549
|
catch (error) {
|
|
@@ -558,7 +558,7 @@ program
|
|
|
558
558
|
.argument('[project]', 'Project ID or name (leave empty for interactive selection)')
|
|
559
559
|
.action(async (projectIdentifier) => {
|
|
560
560
|
try {
|
|
561
|
-
const projects = (0,
|
|
561
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
562
562
|
if (projects.length === 0) {
|
|
563
563
|
console.error('Error: No projects tracked yet. Use "prx add" to add a project.');
|
|
564
564
|
process.exit(1);
|
|
@@ -622,7 +622,7 @@ program
|
|
|
622
622
|
.argument('[project]', 'Project ID or name (leave empty for interactive selection)')
|
|
623
623
|
.action(async (projectIdentifier) => {
|
|
624
624
|
try {
|
|
625
|
-
const projects = (0,
|
|
625
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
626
626
|
if (projects.length === 0) {
|
|
627
627
|
console.error('Error: No projects tracked yet. Use "prx add" to add a project.');
|
|
628
628
|
process.exit(1);
|
|
@@ -672,7 +672,7 @@ program
|
|
|
672
672
|
.argument('[project]', 'Project ID or name (leave empty for interactive selection)')
|
|
673
673
|
.action(async (projectIdentifier) => {
|
|
674
674
|
try {
|
|
675
|
-
const projects = (0,
|
|
675
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
676
676
|
if (projects.length === 0) {
|
|
677
677
|
console.error('Error: No projects tracked yet. Use "prx add" to add a project.');
|
|
678
678
|
process.exit(1);
|
|
@@ -970,9 +970,9 @@ program
|
|
|
970
970
|
.action(async (projectIdentifier) => {
|
|
971
971
|
try {
|
|
972
972
|
const { scanProjectPorts, scanAllProjectPorts } = await Promise.resolve().then(() => __importStar(require('./port-scanner')));
|
|
973
|
-
const db = (0,
|
|
973
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
974
974
|
if (projectIdentifier) {
|
|
975
|
-
const projects = (0,
|
|
975
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
976
976
|
const project = projects.find((p) => p.id.toString() === projectIdentifier || p.name === projectIdentifier);
|
|
977
977
|
if (!project) {
|
|
978
978
|
console.error(`Error: Project not found: ${projectIdentifier}`);
|
|
@@ -995,7 +995,7 @@ program
|
|
|
995
995
|
else {
|
|
996
996
|
console.log('Scanning ports for all projects...\n');
|
|
997
997
|
await scanAllProjectPorts();
|
|
998
|
-
const projects = (0,
|
|
998
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
999
999
|
for (const project of projects) {
|
|
1000
1000
|
const ports = db.getProjectPorts(project.id);
|
|
1001
1001
|
if (ports.length > 0) {
|
|
@@ -1022,7 +1022,7 @@ program
|
|
|
1022
1022
|
// Check if it's actually a project (not a flag)
|
|
1023
1023
|
if (!projectIdentifier.startsWith('-')) {
|
|
1024
1024
|
try {
|
|
1025
|
-
const projects = (0,
|
|
1025
|
+
const projects = (0, core_bridge_1.getAllProjects)();
|
|
1026
1026
|
// Try to find project by ID (if identifier is numeric) or by name
|
|
1027
1027
|
let project;
|
|
1028
1028
|
const numericId = parseInt(projectIdentifier, 10);
|
package/dist/port-scanner.js
CHANGED
|
@@ -36,14 +36,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.scanProjectPorts = scanProjectPorts;
|
|
37
37
|
exports.scanAllProjectPorts = scanAllProjectPorts;
|
|
38
38
|
exports.shouldRescanPorts = shouldRescanPorts;
|
|
39
|
-
const
|
|
39
|
+
const core_bridge_1 = require("./core-bridge");
|
|
40
40
|
const port_extractor_1 = require("./port-extractor");
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
/**
|
|
43
43
|
* Scan and index ports for a specific project
|
|
44
44
|
*/
|
|
45
45
|
async function scanProjectPorts(projectId) {
|
|
46
|
-
const db = (0,
|
|
46
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
47
47
|
const project = db.getProject(projectId);
|
|
48
48
|
if (!project) {
|
|
49
49
|
throw new Error(`Project with id ${projectId} not found`);
|
|
@@ -64,7 +64,7 @@ async function scanProjectPorts(projectId) {
|
|
|
64
64
|
* Scan ports for all projects
|
|
65
65
|
*/
|
|
66
66
|
async function scanAllProjectPorts() {
|
|
67
|
-
const db = (0,
|
|
67
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
68
68
|
const projects = db.getAllProjects();
|
|
69
69
|
for (const project of projects) {
|
|
70
70
|
try {
|
|
@@ -81,7 +81,7 @@ async function scanAllProjectPorts() {
|
|
|
81
81
|
* Returns true if ports haven't been scanned in the last 24 hours
|
|
82
82
|
*/
|
|
83
83
|
function shouldRescanPorts(projectId) {
|
|
84
|
-
const db = (0,
|
|
84
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
85
85
|
const ports = db.getProjectPorts(projectId);
|
|
86
86
|
if (ports.length === 0) {
|
|
87
87
|
return true; // No ports found, should scan
|
package/dist/script-runner.js
CHANGED
|
@@ -48,7 +48,7 @@ const fs = __importStar(require("fs"));
|
|
|
48
48
|
const path = __importStar(require("path"));
|
|
49
49
|
const os = __importStar(require("os"));
|
|
50
50
|
const child_process_1 = require("child_process");
|
|
51
|
-
const
|
|
51
|
+
const core_bridge_1 = require("./core-bridge");
|
|
52
52
|
const port_utils_1 = require("./port-utils");
|
|
53
53
|
/**
|
|
54
54
|
* Detect the project type based on files in the directory
|
|
@@ -324,7 +324,7 @@ async function handlePortConflict(port, projectName, force) {
|
|
|
324
324
|
* Check ports proactively before script execution
|
|
325
325
|
*/
|
|
326
326
|
async function checkPortsBeforeExecution(projectPath, scriptName, force) {
|
|
327
|
-
const db = (0,
|
|
327
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
328
328
|
const project = db.getProjectByPath(projectPath);
|
|
329
329
|
if (!project)
|
|
330
330
|
return true; // Can't check if project not in DB
|
|
@@ -447,7 +447,7 @@ function runScript(projectPath, scriptName, args = [], force = false) {
|
|
|
447
447
|
const errorOutput = stderrOutput + stdoutOutput;
|
|
448
448
|
const port = (0, port_utils_1.extractPortFromError)(errorOutput);
|
|
449
449
|
if (port) {
|
|
450
|
-
const db = (0,
|
|
450
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
451
451
|
const project = db.getProjectByPath(projectPath);
|
|
452
452
|
const projectName = project?.name || 'project';
|
|
453
453
|
const resolved = await handlePortConflict(port, projectName, force);
|
|
@@ -801,7 +801,7 @@ function runScriptInBackground(projectPath, projectName, scriptName, args = [],
|
|
|
801
801
|
// Also check for URLs from detected ports
|
|
802
802
|
setTimeout(async () => {
|
|
803
803
|
try {
|
|
804
|
-
const db = (0,
|
|
804
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
805
805
|
const project = db.getProjectByPath(projectPath);
|
|
806
806
|
if (project) {
|
|
807
807
|
const ports = db.getProjectPorts(project.id);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projax",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "CLI tool for managing local development projects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "tsc",
|
|
11
11
|
"build:electron": "cd ../desktop && npm run build",
|
|
12
|
-
"copy:electron": "mkdir -p dist/electron && cp -r ../desktop/dist/* dist/electron/ && cp dist/script-runner.* dist/electron/ && cp dist/port-*.* dist/electron/",
|
|
12
|
+
"copy:electron": "mkdir -p dist/electron && cp -r ../desktop/dist/* dist/electron/ && cp dist/script-runner.* dist/electron/ && cp dist/port-*.* dist/electron/ && cp -R dist/core dist/electron/",
|
|
13
13
|
"copy:api": "mkdir -p dist/api && cp -r ../api/dist/* dist/api/ && cp ../api/package.json dist/api/",
|
|
14
14
|
"copy:core": "mkdir -p dist/core && cp -r ../core/dist/* dist/core/",
|
|
15
15
|
"build:all": "npm run build && npm run copy:core && npm run build:electron && npm run copy:electron && npm run copy:api",
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
"prepublishOnly": "npm run build:all"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"projax-core": "file:../core",
|
|
21
20
|
"commander": "^11.1.0",
|
|
22
21
|
"electron": "^28.0.0",
|
|
23
22
|
"inquirer": "^9.2.12",
|