projax 3.3.40 → 3.3.51
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/README.md +73 -0
- package/dist/__tests__/port-scanner.test.js +7 -17
- package/dist/__tests__/script-runner.test.js +7 -17
- package/dist/api/__tests__/database.test.js +7 -17
- package/dist/api/__tests__/database.test.js.map +1 -1
- package/dist/api/__tests__/routes.test.js +7 -17
- package/dist/api/__tests__/routes.test.js.map +1 -1
- package/dist/api/__tests__/scanner.test.js +7 -17
- package/dist/api/__tests__/scanner.test.js.map +1 -1
- package/dist/api/database.d.ts +20 -1
- package/dist/api/database.d.ts.map +1 -1
- package/dist/api/database.js +192 -21
- package/dist/api/database.js.map +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +17 -19
- package/dist/api/index.js.map +1 -1
- package/dist/api/migrate.js +2 -1
- package/dist/api/migrate.js.map +1 -1
- package/dist/api/package.json +3 -2
- package/dist/api/routes/backup.d.ts +3 -0
- package/dist/api/routes/backup.d.ts.map +1 -0
- package/dist/api/routes/backup.js +51 -0
- package/dist/api/routes/backup.js.map +1 -0
- package/dist/api/routes/index.d.ts.map +1 -1
- package/dist/api/routes/index.js +6 -0
- package/dist/api/routes/index.js.map +1 -1
- package/dist/api/routes/mcp.d.ts +3 -0
- package/dist/api/routes/mcp.d.ts.map +1 -0
- package/dist/api/routes/mcp.js +147 -0
- package/dist/api/routes/mcp.js.map +1 -0
- package/dist/api/routes/projects.d.ts.map +1 -1
- package/dist/api/routes/projects.js +27 -17
- package/dist/api/routes/projects.js.map +1 -1
- package/dist/api/routes/settings.d.ts.map +1 -1
- package/dist/api/routes/settings.js +119 -11
- package/dist/api/routes/settings.js.map +1 -1
- package/dist/api/routes/workspaces.d.ts +3 -0
- package/dist/api/routes/workspaces.d.ts.map +1 -0
- package/dist/api/routes/workspaces.js +504 -0
- package/dist/api/routes/workspaces.js.map +1 -0
- package/dist/api/services/scanner.js +10 -19
- package/dist/api/services/scanner.js.map +1 -1
- package/dist/api/services/test-parser.js +3 -2
- package/dist/api/services/test-parser.js.map +1 -1
- package/dist/api/types.d.ts +31 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/core/__tests__/database.test.js +7 -17
- package/dist/core/__tests__/detector.test.js +7 -17
- package/dist/core/__tests__/index.test.js +7 -17
- package/dist/core/__tests__/scanner.test.js +7 -17
- package/dist/core/__tests__/settings.test.js +7 -17
- package/dist/core/backup-utils.d.ts +17 -0
- package/dist/core/backup-utils.js +157 -0
- package/dist/core/database.d.ts +1 -0
- package/dist/core/database.js +9 -18
- package/dist/core/detector.js +11 -21
- package/dist/core/git-utils.d.ts +12 -0
- package/dist/core/git-utils.js +87 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.js +8 -5
- package/dist/core/scanner.js +3 -2
- package/dist/core/settings.d.ts +85 -0
- package/dist/core/settings.js +306 -9
- package/dist/core/workspace-utils.d.ts +37 -0
- package/dist/core/workspace-utils.js +143 -0
- package/dist/core-bridge.js +7 -17
- package/dist/electron/core/__tests__/database.test.js +7 -17
- package/dist/electron/core/__tests__/detector.test.js +7 -17
- package/dist/electron/core/__tests__/index.test.js +7 -17
- package/dist/electron/core/__tests__/scanner.test.js +7 -17
- package/dist/electron/core/__tests__/settings.test.js +7 -17
- package/dist/electron/core/backup-utils.d.ts +17 -0
- package/dist/electron/core/backup-utils.js +157 -0
- package/dist/electron/core/database.d.ts +1 -0
- package/dist/electron/core/database.js +9 -18
- package/dist/electron/core/detector.js +11 -21
- package/dist/electron/core/git-utils.d.ts +12 -0
- package/dist/electron/core/git-utils.js +87 -0
- package/dist/electron/core/index.d.ts +3 -0
- package/dist/electron/core/index.js +8 -5
- package/dist/electron/core/scanner.js +3 -2
- package/dist/electron/core/settings.d.ts +85 -0
- package/dist/electron/core/settings.js +306 -9
- package/dist/electron/core/workspace-utils.d.ts +37 -0
- package/dist/electron/core/workspace-utils.js +143 -0
- package/dist/electron/core.js +7 -17
- package/dist/electron/main.js +663 -33
- package/dist/electron/port-extractor.js +9 -18
- package/dist/electron/port-scanner.js +11 -20
- package/dist/electron/port-utils.js +5 -4
- package/dist/electron/preload.d.ts +27 -2
- package/dist/electron/preload.js +18 -2
- package/dist/electron/renderer/assets/index-B-etDnj2.js +64 -0
- package/dist/electron/renderer/assets/index-Bx18Cyic.js +64 -0
- package/dist/electron/renderer/assets/index-C8f5yNYe.js +64 -0
- package/dist/electron/renderer/assets/index-CIZ3Wl6c.css +1 -0
- package/dist/electron/renderer/assets/index-CJbsU9y8.css +1 -0
- package/dist/electron/renderer/assets/index-CopVNRnR.js +64 -0
- package/dist/electron/renderer/assets/index-DUvcepWm.js +64 -0
- package/dist/electron/renderer/assets/index-DWe2TQFv.css +1 -0
- package/dist/electron/renderer/assets/index-DZzB20Xf.css +1 -0
- package/dist/electron/renderer/assets/index-DknLdADV.js +63 -0
- package/dist/electron/renderer/assets/index-DocuD8Lk.js +64 -0
- package/dist/electron/renderer/assets/index-DyU-xfd8.css +1 -0
- package/dist/electron/renderer/assets/index-GwC-JVUy.css +1 -0
- package/dist/electron/renderer/assets/index-fehviker.js +63 -0
- package/dist/electron/renderer/index.html +2 -2
- package/dist/electron/script-runner.js +20 -29
- package/dist/index.js +395 -21
- package/dist/port-extractor.js +9 -18
- package/dist/port-scanner.js +11 -20
- package/dist/port-utils.js +5 -4
- package/dist/script-runner.js +20 -29
- package/dist/test-parser.js +3 -2
- package/package.json +3 -2
package/dist/core/index.js
CHANGED
|
@@ -14,15 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.getDatabaseManager = void 0;
|
|
18
|
-
exports.getAllProjects = getAllProjects;
|
|
19
|
-
exports.addProject = addProject;
|
|
20
|
-
exports.removeProject = removeProject;
|
|
21
|
-
exports.getTestsByProject = getTestsByProject;
|
|
17
|
+
exports.getTestsByProject = exports.removeProject = exports.addProject = exports.getAllProjects = exports.getDatabaseManager = void 0;
|
|
22
18
|
__exportStar(require("./database"), exports);
|
|
23
19
|
__exportStar(require("./detector"), exports);
|
|
24
20
|
__exportStar(require("./scanner"), exports);
|
|
25
21
|
__exportStar(require("./settings"), exports);
|
|
22
|
+
__exportStar(require("./git-utils"), exports);
|
|
23
|
+
__exportStar(require("./workspace-utils"), exports);
|
|
24
|
+
__exportStar(require("./backup-utils"), exports);
|
|
26
25
|
var database_1 = require("./database");
|
|
27
26
|
Object.defineProperty(exports, "getDatabaseManager", { enumerable: true, get: function () { return database_1.getDatabaseManager; } });
|
|
28
27
|
// Convenience functions for common operations
|
|
@@ -30,12 +29,16 @@ const database_2 = require("./database");
|
|
|
30
29
|
function getAllProjects() {
|
|
31
30
|
return (0, database_2.getDatabaseManager)().getAllProjects();
|
|
32
31
|
}
|
|
32
|
+
exports.getAllProjects = getAllProjects;
|
|
33
33
|
function addProject(name, projectPath) {
|
|
34
34
|
return (0, database_2.getDatabaseManager)().addProject(name, projectPath);
|
|
35
35
|
}
|
|
36
|
+
exports.addProject = addProject;
|
|
36
37
|
function removeProject(id) {
|
|
37
38
|
(0, database_2.getDatabaseManager)().removeProject(id);
|
|
38
39
|
}
|
|
40
|
+
exports.removeProject = removeProject;
|
|
39
41
|
function getTestsByProject(projectId) {
|
|
40
42
|
return (0, database_2.getDatabaseManager)().getTestsByProject(projectId);
|
|
41
43
|
}
|
|
44
|
+
exports.getTestsByProject = getTestsByProject;
|
package/dist/core/scanner.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.scanProject =
|
|
4
|
-
exports.scanAllProjects = scanAllProjects;
|
|
3
|
+
exports.scanAllProjects = exports.scanProject = void 0;
|
|
5
4
|
const database_1 = require("./database");
|
|
6
5
|
function scanProject(projectId) {
|
|
7
6
|
return (0, database_1.getDatabaseManager)().scanProject(projectId);
|
|
8
7
|
}
|
|
8
|
+
exports.scanProject = scanProject;
|
|
9
9
|
function scanAllProjects() {
|
|
10
10
|
return (0, database_1.getDatabaseManager)().scanAllProjects();
|
|
11
11
|
}
|
|
12
|
+
exports.scanAllProjects = scanAllProjects;
|
package/dist/core/settings.d.ts
CHANGED
|
@@ -8,9 +8,62 @@ export interface BrowserSettings {
|
|
|
8
8
|
type: BrowserType;
|
|
9
9
|
customPath?: string;
|
|
10
10
|
}
|
|
11
|
+
export interface DisplaySettings {
|
|
12
|
+
projectTiles: {
|
|
13
|
+
showName: boolean;
|
|
14
|
+
showDescription: boolean;
|
|
15
|
+
showTags: boolean;
|
|
16
|
+
showRunningIndicator: boolean;
|
|
17
|
+
showPorts: boolean;
|
|
18
|
+
showGitBranch: boolean;
|
|
19
|
+
};
|
|
20
|
+
projectDetails: {
|
|
21
|
+
showStats: boolean;
|
|
22
|
+
showTestResults: boolean;
|
|
23
|
+
showTags: boolean;
|
|
24
|
+
showUrls: boolean;
|
|
25
|
+
showScripts: boolean;
|
|
26
|
+
showJenkins: boolean;
|
|
27
|
+
};
|
|
28
|
+
workspaceTiles: {
|
|
29
|
+
showName: boolean;
|
|
30
|
+
showDescription: boolean;
|
|
31
|
+
showPath: boolean;
|
|
32
|
+
showTags: boolean;
|
|
33
|
+
showProjectCount: boolean;
|
|
34
|
+
};
|
|
35
|
+
workspaceDetails: {
|
|
36
|
+
showProjectList: boolean;
|
|
37
|
+
showDescription: boolean;
|
|
38
|
+
showPath: boolean;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface AppearanceSettings {
|
|
42
|
+
theme?: string;
|
|
43
|
+
uiDensity?: 'compact' | 'normal' | 'comfortable';
|
|
44
|
+
fontSize?: number;
|
|
45
|
+
animations?: boolean;
|
|
46
|
+
defaultView?: 'projects' | 'workspaces';
|
|
47
|
+
}
|
|
48
|
+
export interface BehaviorSettings {
|
|
49
|
+
autoScanOnAdd?: boolean;
|
|
50
|
+
refreshInterval?: number;
|
|
51
|
+
autoOpenTerminal?: boolean;
|
|
52
|
+
notifications?: boolean;
|
|
53
|
+
defaultScriptSortOrder?: 'default' | 'alphabetical' | 'last-used';
|
|
54
|
+
}
|
|
55
|
+
export interface AdvancedSettings {
|
|
56
|
+
apiPortOverride?: number | null;
|
|
57
|
+
databaseLocation?: string;
|
|
58
|
+
debugMode?: boolean;
|
|
59
|
+
}
|
|
11
60
|
export interface AppSettings {
|
|
12
61
|
editor: EditorSettings;
|
|
13
62
|
browser: BrowserSettings;
|
|
63
|
+
display?: DisplaySettings;
|
|
64
|
+
appearance?: AppearanceSettings;
|
|
65
|
+
behavior?: BehaviorSettings;
|
|
66
|
+
advanced?: AdvancedSettings;
|
|
14
67
|
}
|
|
15
68
|
/**
|
|
16
69
|
* Get a setting value by key
|
|
@@ -40,6 +93,38 @@ export declare function getBrowserSettings(): BrowserSettings;
|
|
|
40
93
|
* Set browser settings
|
|
41
94
|
*/
|
|
42
95
|
export declare function setBrowserSettings(settings: BrowserSettings): void;
|
|
96
|
+
/**
|
|
97
|
+
* Get display settings
|
|
98
|
+
*/
|
|
99
|
+
export declare function getDisplaySettings(): DisplaySettings;
|
|
100
|
+
/**
|
|
101
|
+
* Set display settings
|
|
102
|
+
*/
|
|
103
|
+
export declare function setDisplaySettings(settings: DisplaySettings): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get appearance settings
|
|
106
|
+
*/
|
|
107
|
+
export declare function getAppearanceSettings(): AppearanceSettings;
|
|
108
|
+
/**
|
|
109
|
+
* Set appearance settings
|
|
110
|
+
*/
|
|
111
|
+
export declare function setAppearanceSettings(settings: AppearanceSettings): void;
|
|
112
|
+
/**
|
|
113
|
+
* Get behavior settings
|
|
114
|
+
*/
|
|
115
|
+
export declare function getBehaviorSettings(): BehaviorSettings;
|
|
116
|
+
/**
|
|
117
|
+
* Set behavior settings
|
|
118
|
+
*/
|
|
119
|
+
export declare function setBehaviorSettings(settings: BehaviorSettings): void;
|
|
120
|
+
/**
|
|
121
|
+
* Get advanced settings
|
|
122
|
+
*/
|
|
123
|
+
export declare function getAdvancedSettings(): AdvancedSettings;
|
|
124
|
+
/**
|
|
125
|
+
* Set advanced settings
|
|
126
|
+
*/
|
|
127
|
+
export declare function setAdvancedSettings(settings: AdvancedSettings): void;
|
|
43
128
|
/**
|
|
44
129
|
* Get all app settings
|
|
45
130
|
*/
|
package/dist/core/settings.js
CHANGED
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSetting =
|
|
4
|
-
exports.setSetting = setSetting;
|
|
5
|
-
exports.getAllSettings = getAllSettings;
|
|
6
|
-
exports.getEditorSettings = getEditorSettings;
|
|
7
|
-
exports.setEditorSettings = setEditorSettings;
|
|
8
|
-
exports.getBrowserSettings = getBrowserSettings;
|
|
9
|
-
exports.setBrowserSettings = setBrowserSettings;
|
|
10
|
-
exports.getAppSettings = getAppSettings;
|
|
11
|
-
exports.setAppSettings = setAppSettings;
|
|
3
|
+
exports.setAppSettings = exports.getAppSettings = exports.setAdvancedSettings = exports.getAdvancedSettings = exports.setBehaviorSettings = exports.getBehaviorSettings = exports.setAppearanceSettings = exports.getAppearanceSettings = exports.setDisplaySettings = exports.getDisplaySettings = exports.setBrowserSettings = exports.getBrowserSettings = exports.setEditorSettings = exports.getEditorSettings = exports.getAllSettings = exports.setSetting = exports.getSetting = void 0;
|
|
12
4
|
const database_1 = require("./database");
|
|
5
|
+
const DEFAULT_DISPLAY_SETTINGS = {
|
|
6
|
+
projectTiles: {
|
|
7
|
+
showName: true,
|
|
8
|
+
showDescription: true,
|
|
9
|
+
showTags: true,
|
|
10
|
+
showRunningIndicator: true,
|
|
11
|
+
showPorts: true,
|
|
12
|
+
showGitBranch: true,
|
|
13
|
+
},
|
|
14
|
+
projectDetails: {
|
|
15
|
+
showStats: true,
|
|
16
|
+
showTestResults: true,
|
|
17
|
+
showTags: true,
|
|
18
|
+
showUrls: true,
|
|
19
|
+
showScripts: true,
|
|
20
|
+
showJenkins: false,
|
|
21
|
+
},
|
|
22
|
+
workspaceTiles: {
|
|
23
|
+
showName: true,
|
|
24
|
+
showDescription: true,
|
|
25
|
+
showPath: true,
|
|
26
|
+
showTags: true,
|
|
27
|
+
showProjectCount: true,
|
|
28
|
+
},
|
|
29
|
+
workspaceDetails: {
|
|
30
|
+
showProjectList: true,
|
|
31
|
+
showDescription: true,
|
|
32
|
+
showPath: true,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
13
35
|
const DEFAULT_SETTINGS = {
|
|
14
36
|
editor: {
|
|
15
37
|
type: 'vscode',
|
|
@@ -17,6 +39,24 @@ const DEFAULT_SETTINGS = {
|
|
|
17
39
|
browser: {
|
|
18
40
|
type: 'chrome',
|
|
19
41
|
},
|
|
42
|
+
display: DEFAULT_DISPLAY_SETTINGS,
|
|
43
|
+
appearance: {
|
|
44
|
+
uiDensity: 'normal',
|
|
45
|
+
fontSize: 13,
|
|
46
|
+
animations: true,
|
|
47
|
+
defaultView: 'projects',
|
|
48
|
+
},
|
|
49
|
+
behavior: {
|
|
50
|
+
autoScanOnAdd: true,
|
|
51
|
+
refreshInterval: 5000,
|
|
52
|
+
autoOpenTerminal: false,
|
|
53
|
+
notifications: true,
|
|
54
|
+
defaultScriptSortOrder: 'default',
|
|
55
|
+
},
|
|
56
|
+
advanced: {
|
|
57
|
+
apiPortOverride: null,
|
|
58
|
+
debugMode: false,
|
|
59
|
+
},
|
|
20
60
|
};
|
|
21
61
|
/**
|
|
22
62
|
* Get a setting value by key
|
|
@@ -24,18 +64,21 @@ const DEFAULT_SETTINGS = {
|
|
|
24
64
|
function getSetting(key) {
|
|
25
65
|
return (0, database_1.getDatabaseManager)().getSetting(key);
|
|
26
66
|
}
|
|
67
|
+
exports.getSetting = getSetting;
|
|
27
68
|
/**
|
|
28
69
|
* Set a setting value by key
|
|
29
70
|
*/
|
|
30
71
|
function setSetting(key, value) {
|
|
31
72
|
(0, database_1.getDatabaseManager)().setSetting(key, value);
|
|
32
73
|
}
|
|
74
|
+
exports.setSetting = setSetting;
|
|
33
75
|
/**
|
|
34
76
|
* Get all settings as a key-value object
|
|
35
77
|
*/
|
|
36
78
|
function getAllSettings() {
|
|
37
79
|
return (0, database_1.getDatabaseManager)().getAllSettings();
|
|
38
80
|
}
|
|
81
|
+
exports.getAllSettings = getAllSettings;
|
|
39
82
|
/**
|
|
40
83
|
* Get editor settings
|
|
41
84
|
*/
|
|
@@ -48,6 +91,7 @@ function getEditorSettings() {
|
|
|
48
91
|
customPath,
|
|
49
92
|
};
|
|
50
93
|
}
|
|
94
|
+
exports.getEditorSettings = getEditorSettings;
|
|
51
95
|
/**
|
|
52
96
|
* Set editor settings
|
|
53
97
|
*/
|
|
@@ -60,6 +104,7 @@ function setEditorSettings(settings) {
|
|
|
60
104
|
// Note: Removing settings is not yet supported via the API
|
|
61
105
|
// Setting to empty string would achieve similar effect if needed
|
|
62
106
|
}
|
|
107
|
+
exports.setEditorSettings = setEditorSettings;
|
|
63
108
|
/**
|
|
64
109
|
* Get browser settings
|
|
65
110
|
*/
|
|
@@ -72,6 +117,7 @@ function getBrowserSettings() {
|
|
|
72
117
|
customPath,
|
|
73
118
|
};
|
|
74
119
|
}
|
|
120
|
+
exports.getBrowserSettings = getBrowserSettings;
|
|
75
121
|
/**
|
|
76
122
|
* Set browser settings
|
|
77
123
|
*/
|
|
@@ -84,6 +130,243 @@ function setBrowserSettings(settings) {
|
|
|
84
130
|
// Note: Removing settings is not yet supported via the API
|
|
85
131
|
// Setting to empty string would achieve similar effect if needed
|
|
86
132
|
}
|
|
133
|
+
exports.setBrowserSettings = setBrowserSettings;
|
|
134
|
+
/**
|
|
135
|
+
* Get display settings
|
|
136
|
+
*/
|
|
137
|
+
function getDisplaySettings() {
|
|
138
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
139
|
+
const settings = { ...DEFAULT_DISPLAY_SETTINGS };
|
|
140
|
+
// Project tiles
|
|
141
|
+
const ptShowName = db.getSetting('display.projectTiles.showName');
|
|
142
|
+
if (ptShowName !== null)
|
|
143
|
+
settings.projectTiles.showName = ptShowName === 'true';
|
|
144
|
+
const ptShowDesc = db.getSetting('display.projectTiles.showDescription');
|
|
145
|
+
if (ptShowDesc !== null)
|
|
146
|
+
settings.projectTiles.showDescription = ptShowDesc === 'true';
|
|
147
|
+
const ptShowTags = db.getSetting('display.projectTiles.showTags');
|
|
148
|
+
if (ptShowTags !== null)
|
|
149
|
+
settings.projectTiles.showTags = ptShowTags === 'true';
|
|
150
|
+
const ptShowRunning = db.getSetting('display.projectTiles.showRunningIndicator');
|
|
151
|
+
if (ptShowRunning !== null)
|
|
152
|
+
settings.projectTiles.showRunningIndicator = ptShowRunning === 'true';
|
|
153
|
+
const ptShowPorts = db.getSetting('display.projectTiles.showPorts');
|
|
154
|
+
if (ptShowPorts !== null)
|
|
155
|
+
settings.projectTiles.showPorts = ptShowPorts === 'true';
|
|
156
|
+
const ptShowGit = db.getSetting('display.projectTiles.showGitBranch');
|
|
157
|
+
if (ptShowGit !== null)
|
|
158
|
+
settings.projectTiles.showGitBranch = ptShowGit === 'true';
|
|
159
|
+
// Project details
|
|
160
|
+
const pdShowStats = db.getSetting('display.projectDetails.showStats');
|
|
161
|
+
if (pdShowStats !== null)
|
|
162
|
+
settings.projectDetails.showStats = pdShowStats === 'true';
|
|
163
|
+
const pdShowTests = db.getSetting('display.projectDetails.showTestResults');
|
|
164
|
+
if (pdShowTests !== null)
|
|
165
|
+
settings.projectDetails.showTestResults = pdShowTests === 'true';
|
|
166
|
+
const pdShowTags = db.getSetting('display.projectDetails.showTags');
|
|
167
|
+
if (pdShowTags !== null)
|
|
168
|
+
settings.projectDetails.showTags = pdShowTags === 'true';
|
|
169
|
+
const pdShowUrls = db.getSetting('display.projectDetails.showUrls');
|
|
170
|
+
if (pdShowUrls !== null)
|
|
171
|
+
settings.projectDetails.showUrls = pdShowUrls === 'true';
|
|
172
|
+
const pdShowScripts = db.getSetting('display.projectDetails.showScripts');
|
|
173
|
+
if (pdShowScripts !== null)
|
|
174
|
+
settings.projectDetails.showScripts = pdShowScripts === 'true';
|
|
175
|
+
const pdShowJenkins = db.getSetting('display.projectDetails.showJenkins');
|
|
176
|
+
if (pdShowJenkins !== null)
|
|
177
|
+
settings.projectDetails.showJenkins = pdShowJenkins === 'true';
|
|
178
|
+
// Workspace tiles
|
|
179
|
+
const wtShowName = db.getSetting('display.workspaceTiles.showName');
|
|
180
|
+
if (wtShowName !== null)
|
|
181
|
+
settings.workspaceTiles.showName = wtShowName === 'true';
|
|
182
|
+
const wtShowDesc = db.getSetting('display.workspaceTiles.showDescription');
|
|
183
|
+
if (wtShowDesc !== null)
|
|
184
|
+
settings.workspaceTiles.showDescription = wtShowDesc === 'true';
|
|
185
|
+
const wtShowPath = db.getSetting('display.workspaceTiles.showPath');
|
|
186
|
+
if (wtShowPath !== null)
|
|
187
|
+
settings.workspaceTiles.showPath = wtShowPath === 'true';
|
|
188
|
+
const wtShowTags = db.getSetting('display.workspaceTiles.showTags');
|
|
189
|
+
if (wtShowTags !== null)
|
|
190
|
+
settings.workspaceTiles.showTags = wtShowTags === 'true';
|
|
191
|
+
const wtShowCount = db.getSetting('display.workspaceTiles.showProjectCount');
|
|
192
|
+
if (wtShowCount !== null)
|
|
193
|
+
settings.workspaceTiles.showProjectCount = wtShowCount === 'true';
|
|
194
|
+
// Workspace details
|
|
195
|
+
const wdShowList = db.getSetting('display.workspaceDetails.showProjectList');
|
|
196
|
+
if (wdShowList !== null)
|
|
197
|
+
settings.workspaceDetails.showProjectList = wdShowList === 'true';
|
|
198
|
+
const wdShowDesc = db.getSetting('display.workspaceDetails.showDescription');
|
|
199
|
+
if (wdShowDesc !== null)
|
|
200
|
+
settings.workspaceDetails.showDescription = wdShowDesc === 'true';
|
|
201
|
+
const wdShowPath = db.getSetting('display.workspaceDetails.showPath');
|
|
202
|
+
if (wdShowPath !== null)
|
|
203
|
+
settings.workspaceDetails.showPath = wdShowPath === 'true';
|
|
204
|
+
return settings;
|
|
205
|
+
}
|
|
206
|
+
exports.getDisplaySettings = getDisplaySettings;
|
|
207
|
+
/**
|
|
208
|
+
* Set display settings
|
|
209
|
+
*/
|
|
210
|
+
function setDisplaySettings(settings) {
|
|
211
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
212
|
+
// Project tiles
|
|
213
|
+
db.setSetting('display.projectTiles.showName', String(settings.projectTiles.showName));
|
|
214
|
+
db.setSetting('display.projectTiles.showDescription', String(settings.projectTiles.showDescription));
|
|
215
|
+
db.setSetting('display.projectTiles.showTags', String(settings.projectTiles.showTags));
|
|
216
|
+
db.setSetting('display.projectTiles.showRunningIndicator', String(settings.projectTiles.showRunningIndicator));
|
|
217
|
+
db.setSetting('display.projectTiles.showPorts', String(settings.projectTiles.showPorts));
|
|
218
|
+
db.setSetting('display.projectTiles.showGitBranch', String(settings.projectTiles.showGitBranch));
|
|
219
|
+
// Project details
|
|
220
|
+
db.setSetting('display.projectDetails.showStats', String(settings.projectDetails.showStats));
|
|
221
|
+
db.setSetting('display.projectDetails.showTestResults', String(settings.projectDetails.showTestResults));
|
|
222
|
+
db.setSetting('display.projectDetails.showTags', String(settings.projectDetails.showTags));
|
|
223
|
+
db.setSetting('display.projectDetails.showUrls', String(settings.projectDetails.showUrls));
|
|
224
|
+
db.setSetting('display.projectDetails.showScripts', String(settings.projectDetails.showScripts));
|
|
225
|
+
db.setSetting('display.projectDetails.showJenkins', String(settings.projectDetails.showJenkins));
|
|
226
|
+
// Workspace tiles
|
|
227
|
+
db.setSetting('display.workspaceTiles.showName', String(settings.workspaceTiles.showName));
|
|
228
|
+
db.setSetting('display.workspaceTiles.showDescription', String(settings.workspaceTiles.showDescription));
|
|
229
|
+
db.setSetting('display.workspaceTiles.showPath', String(settings.workspaceTiles.showPath));
|
|
230
|
+
db.setSetting('display.workspaceTiles.showTags', String(settings.workspaceTiles.showTags));
|
|
231
|
+
db.setSetting('display.workspaceTiles.showProjectCount', String(settings.workspaceTiles.showProjectCount));
|
|
232
|
+
// Workspace details
|
|
233
|
+
db.setSetting('display.workspaceDetails.showProjectList', String(settings.workspaceDetails.showProjectList));
|
|
234
|
+
db.setSetting('display.workspaceDetails.showDescription', String(settings.workspaceDetails.showDescription));
|
|
235
|
+
db.setSetting('display.workspaceDetails.showPath', String(settings.workspaceDetails.showPath));
|
|
236
|
+
}
|
|
237
|
+
exports.setDisplaySettings = setDisplaySettings;
|
|
238
|
+
/**
|
|
239
|
+
* Get appearance settings
|
|
240
|
+
*/
|
|
241
|
+
function getAppearanceSettings() {
|
|
242
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
243
|
+
const settings = { ...DEFAULT_SETTINGS.appearance };
|
|
244
|
+
const theme = db.getSetting('appearance.theme');
|
|
245
|
+
if (theme)
|
|
246
|
+
settings.theme = theme;
|
|
247
|
+
const uiDensity = db.getSetting('appearance.uiDensity');
|
|
248
|
+
if (uiDensity && ['compact', 'normal', 'comfortable'].includes(uiDensity)) {
|
|
249
|
+
settings.uiDensity = uiDensity;
|
|
250
|
+
}
|
|
251
|
+
const fontSize = db.getSetting('appearance.fontSize');
|
|
252
|
+
if (fontSize) {
|
|
253
|
+
const size = parseInt(fontSize, 10);
|
|
254
|
+
if (!isNaN(size))
|
|
255
|
+
settings.fontSize = size;
|
|
256
|
+
}
|
|
257
|
+
const animations = db.getSetting('appearance.animations');
|
|
258
|
+
if (animations !== null)
|
|
259
|
+
settings.animations = animations === 'true';
|
|
260
|
+
const defaultView = db.getSetting('appearance.defaultView');
|
|
261
|
+
if (defaultView && ['projects', 'workspaces'].includes(defaultView)) {
|
|
262
|
+
settings.defaultView = defaultView;
|
|
263
|
+
}
|
|
264
|
+
return settings;
|
|
265
|
+
}
|
|
266
|
+
exports.getAppearanceSettings = getAppearanceSettings;
|
|
267
|
+
/**
|
|
268
|
+
* Set appearance settings
|
|
269
|
+
*/
|
|
270
|
+
function setAppearanceSettings(settings) {
|
|
271
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
272
|
+
if (settings.theme !== undefined)
|
|
273
|
+
db.setSetting('appearance.theme', settings.theme);
|
|
274
|
+
if (settings.uiDensity !== undefined)
|
|
275
|
+
db.setSetting('appearance.uiDensity', settings.uiDensity);
|
|
276
|
+
if (settings.fontSize !== undefined)
|
|
277
|
+
db.setSetting('appearance.fontSize', String(settings.fontSize));
|
|
278
|
+
if (settings.animations !== undefined)
|
|
279
|
+
db.setSetting('appearance.animations', String(settings.animations));
|
|
280
|
+
if (settings.defaultView !== undefined)
|
|
281
|
+
db.setSetting('appearance.defaultView', settings.defaultView);
|
|
282
|
+
}
|
|
283
|
+
exports.setAppearanceSettings = setAppearanceSettings;
|
|
284
|
+
/**
|
|
285
|
+
* Get behavior settings
|
|
286
|
+
*/
|
|
287
|
+
function getBehaviorSettings() {
|
|
288
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
289
|
+
const settings = { ...DEFAULT_SETTINGS.behavior };
|
|
290
|
+
const autoScan = db.getSetting('behavior.autoScanOnAdd');
|
|
291
|
+
if (autoScan !== null)
|
|
292
|
+
settings.autoScanOnAdd = autoScan === 'true';
|
|
293
|
+
const refreshInterval = db.getSetting('behavior.refreshInterval');
|
|
294
|
+
if (refreshInterval) {
|
|
295
|
+
const interval = parseInt(refreshInterval, 10);
|
|
296
|
+
if (!isNaN(interval))
|
|
297
|
+
settings.refreshInterval = interval;
|
|
298
|
+
}
|
|
299
|
+
const autoOpenTerminal = db.getSetting('behavior.autoOpenTerminal');
|
|
300
|
+
if (autoOpenTerminal !== null)
|
|
301
|
+
settings.autoOpenTerminal = autoOpenTerminal === 'true';
|
|
302
|
+
const notifications = db.getSetting('behavior.notifications');
|
|
303
|
+
if (notifications !== null)
|
|
304
|
+
settings.notifications = notifications === 'true';
|
|
305
|
+
const defaultSort = db.getSetting('behavior.defaultScriptSortOrder');
|
|
306
|
+
if (defaultSort && ['default', 'alphabetical', 'last-used'].includes(defaultSort)) {
|
|
307
|
+
settings.defaultScriptSortOrder = defaultSort;
|
|
308
|
+
}
|
|
309
|
+
return settings;
|
|
310
|
+
}
|
|
311
|
+
exports.getBehaviorSettings = getBehaviorSettings;
|
|
312
|
+
/**
|
|
313
|
+
* Set behavior settings
|
|
314
|
+
*/
|
|
315
|
+
function setBehaviorSettings(settings) {
|
|
316
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
317
|
+
if (settings.autoScanOnAdd !== undefined)
|
|
318
|
+
db.setSetting('behavior.autoScanOnAdd', String(settings.autoScanOnAdd));
|
|
319
|
+
if (settings.refreshInterval !== undefined)
|
|
320
|
+
db.setSetting('behavior.refreshInterval', String(settings.refreshInterval));
|
|
321
|
+
if (settings.autoOpenTerminal !== undefined)
|
|
322
|
+
db.setSetting('behavior.autoOpenTerminal', String(settings.autoOpenTerminal));
|
|
323
|
+
if (settings.notifications !== undefined)
|
|
324
|
+
db.setSetting('behavior.notifications', String(settings.notifications));
|
|
325
|
+
if (settings.defaultScriptSortOrder !== undefined)
|
|
326
|
+
db.setSetting('behavior.defaultScriptSortOrder', settings.defaultScriptSortOrder);
|
|
327
|
+
}
|
|
328
|
+
exports.setBehaviorSettings = setBehaviorSettings;
|
|
329
|
+
/**
|
|
330
|
+
* Get advanced settings
|
|
331
|
+
*/
|
|
332
|
+
function getAdvancedSettings() {
|
|
333
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
334
|
+
const settings = { ...DEFAULT_SETTINGS.advanced };
|
|
335
|
+
const apiPort = db.getSetting('advanced.apiPortOverride');
|
|
336
|
+
if (apiPort !== null) {
|
|
337
|
+
if (apiPort === '') {
|
|
338
|
+
settings.apiPortOverride = null;
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
const port = parseInt(apiPort, 10);
|
|
342
|
+
if (!isNaN(port))
|
|
343
|
+
settings.apiPortOverride = port;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
const dbLocation = db.getSetting('advanced.databaseLocation');
|
|
347
|
+
if (dbLocation)
|
|
348
|
+
settings.databaseLocation = dbLocation;
|
|
349
|
+
const debugMode = db.getSetting('advanced.debugMode');
|
|
350
|
+
if (debugMode !== null)
|
|
351
|
+
settings.debugMode = debugMode === 'true';
|
|
352
|
+
return settings;
|
|
353
|
+
}
|
|
354
|
+
exports.getAdvancedSettings = getAdvancedSettings;
|
|
355
|
+
/**
|
|
356
|
+
* Set advanced settings
|
|
357
|
+
*/
|
|
358
|
+
function setAdvancedSettings(settings) {
|
|
359
|
+
const db = (0, database_1.getDatabaseManager)();
|
|
360
|
+
if (settings.apiPortOverride !== undefined) {
|
|
361
|
+
db.setSetting('advanced.apiPortOverride', settings.apiPortOverride === null ? '' : String(settings.apiPortOverride));
|
|
362
|
+
}
|
|
363
|
+
if (settings.databaseLocation !== undefined && settings.databaseLocation) {
|
|
364
|
+
db.setSetting('advanced.databaseLocation', settings.databaseLocation);
|
|
365
|
+
}
|
|
366
|
+
if (settings.debugMode !== undefined)
|
|
367
|
+
db.setSetting('advanced.debugMode', String(settings.debugMode));
|
|
368
|
+
}
|
|
369
|
+
exports.setAdvancedSettings = setAdvancedSettings;
|
|
87
370
|
/**
|
|
88
371
|
* Get all app settings
|
|
89
372
|
*/
|
|
@@ -91,12 +374,26 @@ function getAppSettings() {
|
|
|
91
374
|
return {
|
|
92
375
|
editor: getEditorSettings(),
|
|
93
376
|
browser: getBrowserSettings(),
|
|
377
|
+
display: getDisplaySettings(),
|
|
378
|
+
appearance: getAppearanceSettings(),
|
|
379
|
+
behavior: getBehaviorSettings(),
|
|
380
|
+
advanced: getAdvancedSettings(),
|
|
94
381
|
};
|
|
95
382
|
}
|
|
383
|
+
exports.getAppSettings = getAppSettings;
|
|
96
384
|
/**
|
|
97
385
|
* Set all app settings
|
|
98
386
|
*/
|
|
99
387
|
function setAppSettings(settings) {
|
|
100
388
|
setEditorSettings(settings.editor);
|
|
101
389
|
setBrowserSettings(settings.browser);
|
|
390
|
+
if (settings.display)
|
|
391
|
+
setDisplaySettings(settings.display);
|
|
392
|
+
if (settings.appearance)
|
|
393
|
+
setAppearanceSettings(settings.appearance);
|
|
394
|
+
if (settings.behavior)
|
|
395
|
+
setBehaviorSettings(settings.behavior);
|
|
396
|
+
if (settings.advanced)
|
|
397
|
+
setAdvancedSettings(settings.advanced);
|
|
102
398
|
}
|
|
399
|
+
exports.setAppSettings = setAppSettings;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface WorkspaceFolder {
|
|
2
|
+
path: string;
|
|
3
|
+
name?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface WorkspaceSettings {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkspaceExtensions {
|
|
9
|
+
recommendations?: string[];
|
|
10
|
+
unwantedRecommendations?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface ParsedWorkspace {
|
|
13
|
+
folders: WorkspaceFolder[];
|
|
14
|
+
settings?: WorkspaceSettings;
|
|
15
|
+
extensions?: WorkspaceExtensions;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parse a .code-workspace file
|
|
19
|
+
* @param filePath Path to the .code-workspace file
|
|
20
|
+
* @returns Parsed workspace structure
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseWorkspaceFile(filePath: string): ParsedWorkspace;
|
|
23
|
+
/**
|
|
24
|
+
* Generate a .code-workspace file
|
|
25
|
+
* @param workspaceName Name of the workspace (used in comments)
|
|
26
|
+
* @param projects Array of project paths (absolute or relative)
|
|
27
|
+
* @param outputPath Path where the .code-workspace file should be created
|
|
28
|
+
* @param settings Optional workspace settings
|
|
29
|
+
* @param extensions Optional workspace extensions recommendations
|
|
30
|
+
*/
|
|
31
|
+
export declare function generateWorkspaceFile(workspaceName: string, projects: string[], outputPath: string, settings?: WorkspaceSettings, extensions?: WorkspaceExtensions): void;
|
|
32
|
+
/**
|
|
33
|
+
* Validate that a path is a valid workspace file
|
|
34
|
+
* @param filePath Path to check
|
|
35
|
+
* @returns true if the path exists and is a valid .code-workspace file
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateWorkspacePath(filePath: string): boolean;
|