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.
@@ -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
- // Import from bundled core in CLI package
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 projax_core_1 = require("projax-core");
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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 projax_core_1 = require("projax-core");
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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 projax_core_1 = require("projax-core");
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.scanProject)(project.id);
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, projax_core_1.getDatabaseManager)();
318
- const projects = (0, projax_core_1.getAllProjects)();
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, projax_core_1.getDatabaseManager)();
425
+ const db = (0, core_bridge_1.getDatabaseManager)();
426
426
  if (projectIdentifier) {
427
427
  // Find project by ID or name
428
- const projects = (0, projax_core_1.getAllProjects)();
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, projax_core_1.scanProject)(project.id);
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, projax_core_1.scanAllProjects)();
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, projax_core_1.getDatabaseManager)();
497
- const projects = (0, projax_core_1.getAllProjects)();
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, projax_core_1.getDatabaseManager)();
525
- const projects = (0, projax_core_1.getAllProjects)();
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, projax_core_1.removeProject)(project.id);
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, projax_core_1.getAllProjects)();
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, projax_core_1.getAllProjects)();
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, projax_core_1.getAllProjects)();
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, projax_core_1.getDatabaseManager)();
973
+ const db = (0, core_bridge_1.getDatabaseManager)();
974
974
  if (projectIdentifier) {
975
- const projects = (0, projax_core_1.getAllProjects)();
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, projax_core_1.getAllProjects)();
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, projax_core_1.getAllProjects)();
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);
@@ -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 projax_core_1 = require("projax-core");
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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 projax_core_1 = require("projax-core");
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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, projax_core_1.getDatabaseManager)();
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.0",
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",