@git.zone/cli 2.0.0 → 2.2.0
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/assets/templates/npm/.package.json +4 -6
- package/assets/templates/npm/test/test.ts +2 -2
- package/assets/templates/service/.package.json +7 -7
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/mod_format/format.packagejson.js +3 -2
- package/dist_ts/mod_format/format.templates.js +1 -6
- package/dist_ts/mod_services/classes.globalregistry.d.ts +77 -0
- package/dist_ts/mod_services/classes.globalregistry.js +133 -0
- package/dist_ts/mod_services/classes.servicemanager.d.ts +5 -0
- package/dist_ts/mod_services/classes.servicemanager.js +35 -1
- package/dist_ts/mod_services/index.js +144 -2
- package/package.json +6 -7
- package/readme.md +28 -15
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/mod_format/format.packagejson.ts +2 -1
- package/ts/mod_format/format.templates.ts +0 -6
- package/ts/mod_services/classes.globalregistry.ts +190 -0
- package/ts/mod_services/classes.servicemanager.ts +40 -0
- package/ts/mod_services/index.ts +184 -3
|
@@ -17,12 +17,10 @@ fileName: package.json
|
|
|
17
17
|
"buildDocs": "(tsdoc)"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@git.zone/tsbuild": "^
|
|
21
|
-
"@git.zone/
|
|
22
|
-
"@git.zone/
|
|
23
|
-
"@
|
|
24
|
-
"@push.rocks/tapbundle": "^5.0.15",
|
|
25
|
-
"@types/node": "^20.8.7"
|
|
20
|
+
"@git.zone/tsbuild": "^3.1.2",
|
|
21
|
+
"@git.zone/tsrun": "^2.0.0",
|
|
22
|
+
"@git.zone/tstest": "^3.1.3",
|
|
23
|
+
"@types/node": "^24.10.1"
|
|
26
24
|
},
|
|
27
25
|
"dependencies": {}
|
|
28
26
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { expect,
|
|
1
|
+
import { expect, tap } from '@git.zone/tstest/tapbundle';
|
|
2
2
|
import * as {{module.name}} from '../ts/index.js'
|
|
3
3
|
|
|
4
4
|
tap.test('first test', async () => {
|
|
5
5
|
console.log({{module.name}})
|
|
6
6
|
})
|
|
7
7
|
|
|
8
|
-
tap.start()
|
|
8
|
+
export default tap.start()
|
|
@@ -17,18 +17,18 @@ fileName: package.json
|
|
|
17
17
|
"build": "(tsbuild --web --allowimplicitany)"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@git.zone/tsbuild": "^
|
|
21
|
-
"@git.zone/tsrun": "^
|
|
22
|
-
"@git.zone/tstest": "^1.
|
|
20
|
+
"@git.zone/tsbuild": "^3.1.2",
|
|
21
|
+
"@git.zone/tsrun": "^2.0.0",
|
|
22
|
+
"@git.zone/tstest": "^3.1.3",
|
|
23
23
|
"@git.zone/tswatch": "^2.0.1",
|
|
24
|
-
"@
|
|
24
|
+
"@types/node": "^24.10.1"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@api.global/typedserver": "^3.0.53",
|
|
28
|
-
"@push.rocks/projectinfo": "^5.0.
|
|
28
|
+
"@push.rocks/projectinfo": "^5.0.2",
|
|
29
29
|
"@push.rocks/qenv": "^6.1.0",
|
|
30
30
|
"@push.rocks/smartdata": "^5.0.7",
|
|
31
|
-
"@push.rocks/smartpath": "^
|
|
31
|
+
"@push.rocks/smartpath": "^6.0.0",
|
|
32
32
|
"@push.rocks/smartstate": "^2.0.0"
|
|
33
|
-
}
|
|
33
|
+
}
|
|
34
34
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@git.zone/cli',
|
|
6
|
-
version: '2.
|
|
6
|
+
version: '2.2.0',
|
|
7
7
|
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxlQUFlO0lBQ3JCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSwrTEFBK0w7Q0FDN00sQ0FBQSJ9
|
|
@@ -120,7 +120,8 @@ export const run = async (projectArg) => {
|
|
|
120
120
|
'readme.md',
|
|
121
121
|
];
|
|
122
122
|
// check for dependencies
|
|
123
|
-
|
|
123
|
+
// Note: @push.rocks/tapbundle is deprecated - use @git.zone/tstest/tapbundle instead
|
|
124
|
+
await ensureDependency(packageJson, 'devDep', 'exclude', '@push.rocks/tapbundle');
|
|
124
125
|
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tstest');
|
|
125
126
|
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tsbuild');
|
|
126
127
|
// set overrides
|
|
@@ -141,4 +142,4 @@ export const run = async (projectArg) => {
|
|
|
141
142
|
console.log(error);
|
|
142
143
|
});
|
|
143
144
|
};
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnBhY2thZ2Vqc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXQucGFja2FnZWpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssWUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFDNUIsb0JBQXlCLEVBQ3pCLFFBQXlDLEVBQ3pDLFVBQTRDLEVBQzVDLGFBQXFCLEVBQ3JCLEVBQUU7SUFDRixNQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTlCLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUVwQyxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssS0FBSztZQUNSLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDcEMsTUFBTTtRQUNSLEtBQUssUUFBUTtZQUNYLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2QyxNQUFNO1FBQ1IsS0FBSyxZQUFZO1lBQ2YsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN2RCxNQUFNO0lBQ1YsQ0FB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
|
|
@@ -7,11 +7,6 @@ import { Project } from '../classes.project.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export const run = async (project) => {
|
|
9
9
|
const templateModule = await import('../mod_template/index.js');
|
|
10
|
-
// update tslint
|
|
11
|
-
// getting template
|
|
12
|
-
const tslintTemplate = await templateModule.getTemplate('tslint');
|
|
13
|
-
await tslintTemplate.writeToDisk(paths.cwd);
|
|
14
|
-
logger.log('info', 'Updated tslint.json!');
|
|
15
10
|
// update vscode
|
|
16
11
|
const vscodeTemplate = await templateModule.getTemplate('vscode');
|
|
17
12
|
await vscodeTemplate.writeToDisk(paths.cwd);
|
|
@@ -70,4 +65,4 @@ export const run = async (project) => {
|
|
|
70
65
|
logger.log('info', `Updated html for wcc template!`);
|
|
71
66
|
}
|
|
72
67
|
};
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0LnRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUM1QyxNQUFNLGNBQWMsR0FBRyxNQUFNLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBRWhFLGdCQUFnQjtJQUNoQixNQUFNLGNBQWMsR0FBRyxNQUFNLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEUsTUFBTSxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBRS9DLGtDQUFrQztJQUNsQyxRQUFRLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxLQUFLO1lBQ1IsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN4RSxNQUFNLGlCQUFpQixHQUNyQixNQUFNLGNBQWMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2pELGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFD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
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export interface IRegisteredProject {
|
|
2
|
+
projectPath: string;
|
|
3
|
+
projectName: string;
|
|
4
|
+
containers: {
|
|
5
|
+
mongo?: string;
|
|
6
|
+
minio?: string;
|
|
7
|
+
elasticsearch?: string;
|
|
8
|
+
};
|
|
9
|
+
ports: {
|
|
10
|
+
mongo?: number;
|
|
11
|
+
s3?: number;
|
|
12
|
+
s3Console?: number;
|
|
13
|
+
elasticsearch?: number;
|
|
14
|
+
};
|
|
15
|
+
enabledServices: string[];
|
|
16
|
+
lastActive: number;
|
|
17
|
+
}
|
|
18
|
+
export interface IGlobalRegistryData {
|
|
19
|
+
projects: {
|
|
20
|
+
[projectPath: string]: IRegisteredProject;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare class GlobalRegistry {
|
|
24
|
+
private static instance;
|
|
25
|
+
private kvStore;
|
|
26
|
+
private docker;
|
|
27
|
+
private constructor();
|
|
28
|
+
/**
|
|
29
|
+
* Get the singleton instance
|
|
30
|
+
*/
|
|
31
|
+
static getInstance(): GlobalRegistry;
|
|
32
|
+
/**
|
|
33
|
+
* Register or update a project in the global registry
|
|
34
|
+
*/
|
|
35
|
+
registerProject(data: Omit<IRegisteredProject, 'lastActive'>): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Remove a project from the registry
|
|
38
|
+
*/
|
|
39
|
+
unregisterProject(projectPath: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Update the lastActive timestamp for a project
|
|
42
|
+
*/
|
|
43
|
+
touchProject(projectPath: string): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Get all registered projects
|
|
46
|
+
*/
|
|
47
|
+
getAllProjects(): Promise<{
|
|
48
|
+
[path: string]: IRegisteredProject;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Check if a project is registered
|
|
52
|
+
*/
|
|
53
|
+
isRegistered(projectPath: string): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Get status of all containers across all registered projects
|
|
56
|
+
*/
|
|
57
|
+
getGlobalStatus(): Promise<Array<{
|
|
58
|
+
projectPath: string;
|
|
59
|
+
projectName: string;
|
|
60
|
+
containers: Array<{
|
|
61
|
+
name: string;
|
|
62
|
+
status: string;
|
|
63
|
+
}>;
|
|
64
|
+
lastActive: number;
|
|
65
|
+
}>>;
|
|
66
|
+
/**
|
|
67
|
+
* Stop all containers across all registered projects
|
|
68
|
+
*/
|
|
69
|
+
stopAll(): Promise<{
|
|
70
|
+
stopped: string[];
|
|
71
|
+
failed: string[];
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Remove stale registry entries (projects that no longer exist on disk)
|
|
75
|
+
*/
|
|
76
|
+
cleanup(): Promise<string[]>;
|
|
77
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
|
+
import { DockerContainer } from './classes.dockercontainer.js';
|
|
3
|
+
import { logger } from '../gitzone.logging.js';
|
|
4
|
+
export class GlobalRegistry {
|
|
5
|
+
static { this.instance = null; }
|
|
6
|
+
constructor() {
|
|
7
|
+
this.kvStore = new plugins.npmextra.KeyValueStore({
|
|
8
|
+
typeArg: 'userHomeDir',
|
|
9
|
+
identityArg: 'gitzone-services',
|
|
10
|
+
});
|
|
11
|
+
this.docker = new DockerContainer();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the singleton instance
|
|
15
|
+
*/
|
|
16
|
+
static getInstance() {
|
|
17
|
+
if (!GlobalRegistry.instance) {
|
|
18
|
+
GlobalRegistry.instance = new GlobalRegistry();
|
|
19
|
+
}
|
|
20
|
+
return GlobalRegistry.instance;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Register or update a project in the global registry
|
|
24
|
+
*/
|
|
25
|
+
async registerProject(data) {
|
|
26
|
+
const allData = await this.kvStore.readAll();
|
|
27
|
+
const projects = allData.projects || {};
|
|
28
|
+
projects[data.projectPath] = {
|
|
29
|
+
...data,
|
|
30
|
+
lastActive: Date.now(),
|
|
31
|
+
};
|
|
32
|
+
await this.kvStore.writeKey('projects', projects);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Remove a project from the registry
|
|
36
|
+
*/
|
|
37
|
+
async unregisterProject(projectPath) {
|
|
38
|
+
const allData = await this.kvStore.readAll();
|
|
39
|
+
const projects = allData.projects || {};
|
|
40
|
+
if (projects[projectPath]) {
|
|
41
|
+
delete projects[projectPath];
|
|
42
|
+
await this.kvStore.writeKey('projects', projects);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Update the lastActive timestamp for a project
|
|
47
|
+
*/
|
|
48
|
+
async touchProject(projectPath) {
|
|
49
|
+
const allData = await this.kvStore.readAll();
|
|
50
|
+
const projects = allData.projects || {};
|
|
51
|
+
if (projects[projectPath]) {
|
|
52
|
+
projects[projectPath].lastActive = Date.now();
|
|
53
|
+
await this.kvStore.writeKey('projects', projects);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get all registered projects
|
|
58
|
+
*/
|
|
59
|
+
async getAllProjects() {
|
|
60
|
+
const allData = await this.kvStore.readAll();
|
|
61
|
+
return allData.projects || {};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if a project is registered
|
|
65
|
+
*/
|
|
66
|
+
async isRegistered(projectPath) {
|
|
67
|
+
const projects = await this.getAllProjects();
|
|
68
|
+
return !!projects[projectPath];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get status of all containers across all registered projects
|
|
72
|
+
*/
|
|
73
|
+
async getGlobalStatus() {
|
|
74
|
+
const projects = await this.getAllProjects();
|
|
75
|
+
const result = [];
|
|
76
|
+
for (const [path, project] of Object.entries(projects)) {
|
|
77
|
+
const containerStatuses = [];
|
|
78
|
+
for (const containerName of Object.values(project.containers)) {
|
|
79
|
+
if (containerName) {
|
|
80
|
+
const status = await this.docker.getStatus(containerName);
|
|
81
|
+
containerStatuses.push({ name: containerName, status });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
result.push({
|
|
85
|
+
projectPath: path,
|
|
86
|
+
projectName: project.projectName,
|
|
87
|
+
containers: containerStatuses,
|
|
88
|
+
lastActive: project.lastActive,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Stop all containers across all registered projects
|
|
95
|
+
*/
|
|
96
|
+
async stopAll() {
|
|
97
|
+
const projects = await this.getAllProjects();
|
|
98
|
+
const stopped = [];
|
|
99
|
+
const failed = [];
|
|
100
|
+
for (const project of Object.values(projects)) {
|
|
101
|
+
for (const containerName of Object.values(project.containers)) {
|
|
102
|
+
if (containerName) {
|
|
103
|
+
const status = await this.docker.getStatus(containerName);
|
|
104
|
+
if (status === 'running') {
|
|
105
|
+
if (await this.docker.stop(containerName)) {
|
|
106
|
+
stopped.push(containerName);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
failed.push(containerName);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return { stopped, failed };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Remove stale registry entries (projects that no longer exist on disk)
|
|
119
|
+
*/
|
|
120
|
+
async cleanup() {
|
|
121
|
+
const projects = await this.getAllProjects();
|
|
122
|
+
const removed = [];
|
|
123
|
+
for (const projectPath of Object.keys(projects)) {
|
|
124
|
+
const exists = await plugins.smartfs.directory(projectPath).exists();
|
|
125
|
+
if (!exists) {
|
|
126
|
+
await this.unregisterProject(projectPath);
|
|
127
|
+
removed.push(projectPath);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return removed;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5nbG9iYWxyZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9zZXJ2aWNlcy9jbGFzc2VzLmdsb2JhbHJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUF3Qi9DLE1BQU0sT0FBTyxjQUFjO2FBQ1YsYUFBUSxHQUEwQixJQUFJLENBQUM7SUFJdEQ7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDaEQsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLGtCQUFrQjtTQUNoQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVc7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixjQUFjLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQTRDO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUV4QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHO1lBQzNCLEdBQUcsSUFBSTtZQUNQLFVBQVUsRUFBRSxJQUFJ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
|
|
@@ -2,6 +2,7 @@ export declare class ServiceManager {
|
|
|
2
2
|
private config;
|
|
3
3
|
private docker;
|
|
4
4
|
private enabledServices;
|
|
5
|
+
private globalRegistry;
|
|
5
6
|
constructor();
|
|
6
7
|
/**
|
|
7
8
|
* Initialize the service manager
|
|
@@ -19,6 +20,10 @@ export declare class ServiceManager {
|
|
|
19
20
|
* Check if a service is enabled
|
|
20
21
|
*/
|
|
21
22
|
private isServiceEnabled;
|
|
23
|
+
/**
|
|
24
|
+
* Register this project with the global registry
|
|
25
|
+
*/
|
|
26
|
+
private registerWithGlobalRegistry;
|
|
22
27
|
/**
|
|
23
28
|
* Start all enabled services
|
|
24
29
|
*/
|