@git.zone/cli 1.16.9 → 1.17.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.
@@ -0,0 +1,184 @@
1
+ import * as plugins from './mod.plugins.js';
2
+ import * as helpers from './helpers.js';
3
+ import { ServiceManager } from './classes.servicemanager.js';
4
+ import { logger } from '../gitzone.logging.js';
5
+ export const run = async (argvArg) => {
6
+ const serviceManager = new ServiceManager();
7
+ await serviceManager.init();
8
+ const command = argvArg._[1] || 'help';
9
+ const service = argvArg._[2] || 'all';
10
+ switch (command) {
11
+ case 'start':
12
+ await handleStart(serviceManager, service);
13
+ break;
14
+ case 'stop':
15
+ await handleStop(serviceManager, service);
16
+ break;
17
+ case 'restart':
18
+ await handleRestart(serviceManager, service);
19
+ break;
20
+ case 'status':
21
+ await serviceManager.showStatus();
22
+ break;
23
+ case 'config':
24
+ await serviceManager.showConfig();
25
+ break;
26
+ case 'compass':
27
+ await serviceManager.showCompassConnection();
28
+ break;
29
+ case 'logs':
30
+ const lines = parseInt(argvArg._[3]) || 20;
31
+ await serviceManager.showLogs(service, lines);
32
+ break;
33
+ case 'remove':
34
+ await handleRemove(serviceManager);
35
+ break;
36
+ case 'clean':
37
+ await handleClean(serviceManager);
38
+ break;
39
+ case 'help':
40
+ default:
41
+ showHelp();
42
+ break;
43
+ }
44
+ };
45
+ async function handleStart(serviceManager, service) {
46
+ helpers.printHeader('Starting Services');
47
+ switch (service) {
48
+ case 'mongo':
49
+ case 'mongodb':
50
+ await serviceManager.startMongoDB();
51
+ break;
52
+ case 'minio':
53
+ case 's3':
54
+ await serviceManager.startMinIO();
55
+ break;
56
+ case 'all':
57
+ case '':
58
+ await serviceManager.startMongoDB();
59
+ console.log();
60
+ await serviceManager.startMinIO();
61
+ break;
62
+ default:
63
+ logger.log('error', `Unknown service: ${service}`);
64
+ logger.log('note', 'Use: mongo, s3, or all');
65
+ break;
66
+ }
67
+ }
68
+ async function handleStop(serviceManager, service) {
69
+ helpers.printHeader('Stopping Services');
70
+ switch (service) {
71
+ case 'mongo':
72
+ case 'mongodb':
73
+ await serviceManager.stopMongoDB();
74
+ break;
75
+ case 'minio':
76
+ case 's3':
77
+ await serviceManager.stopMinIO();
78
+ break;
79
+ case 'all':
80
+ case '':
81
+ await serviceManager.stopMongoDB();
82
+ console.log();
83
+ await serviceManager.stopMinIO();
84
+ break;
85
+ default:
86
+ logger.log('error', `Unknown service: ${service}`);
87
+ logger.log('note', 'Use: mongo, s3, or all');
88
+ break;
89
+ }
90
+ }
91
+ async function handleRestart(serviceManager, service) {
92
+ helpers.printHeader('Restarting Services');
93
+ switch (service) {
94
+ case 'mongo':
95
+ case 'mongodb':
96
+ await serviceManager.stopMongoDB();
97
+ await plugins.smartdelay.delayFor(2000);
98
+ await serviceManager.startMongoDB();
99
+ break;
100
+ case 'minio':
101
+ case 's3':
102
+ await serviceManager.stopMinIO();
103
+ await plugins.smartdelay.delayFor(2000);
104
+ await serviceManager.startMinIO();
105
+ break;
106
+ case 'all':
107
+ case '':
108
+ await serviceManager.stopMongoDB();
109
+ await serviceManager.stopMinIO();
110
+ await plugins.smartdelay.delayFor(2000);
111
+ await serviceManager.startMongoDB();
112
+ console.log();
113
+ await serviceManager.startMinIO();
114
+ break;
115
+ default:
116
+ logger.log('error', `Unknown service: ${service}`);
117
+ break;
118
+ }
119
+ }
120
+ async function handleRemove(serviceManager) {
121
+ helpers.printHeader('Removing Containers');
122
+ logger.log('note', '⚠️ This will remove containers but preserve data');
123
+ const shouldContinue = await plugins.smartinteract.SmartInteract.getCliConfirmation('Continue?', false);
124
+ if (shouldContinue) {
125
+ await serviceManager.removeContainers();
126
+ }
127
+ else {
128
+ logger.log('note', 'Cancelled');
129
+ }
130
+ }
131
+ async function handleClean(serviceManager) {
132
+ helpers.printHeader('Clean All');
133
+ logger.log('error', '⚠️ WARNING: This will remove all containers and data!');
134
+ logger.log('error', 'This action cannot be undone!');
135
+ const smartinteraction = new plugins.smartinteract.SmartInteract();
136
+ const confirmAnswer = await smartinteraction.askQuestion({
137
+ name: 'confirm',
138
+ type: 'input',
139
+ message: 'Type "yes" to confirm:',
140
+ default: 'no'
141
+ });
142
+ if (confirmAnswer.value === 'yes') {
143
+ await serviceManager.removeContainers();
144
+ console.log();
145
+ await serviceManager.cleanData();
146
+ logger.log('ok', 'All cleaned ✓');
147
+ }
148
+ else {
149
+ logger.log('note', 'Cancelled');
150
+ }
151
+ }
152
+ function showHelp() {
153
+ helpers.printHeader('GitZone Services Manager');
154
+ logger.log('ok', 'Usage: gitzone services [command] [options]');
155
+ console.log();
156
+ logger.log('note', 'Commands:');
157
+ logger.log('info', ' start [service] Start services (mongo|s3|all)');
158
+ logger.log('info', ' stop [service] Stop services (mongo|s3|all)');
159
+ logger.log('info', ' restart [service] Restart services (mongo|s3|all)');
160
+ logger.log('info', ' status Show service status');
161
+ logger.log('info', ' config Show current configuration');
162
+ logger.log('info', ' compass Show MongoDB Compass connection string');
163
+ logger.log('info', ' logs [service] Show logs (mongo|s3|all) [lines]');
164
+ logger.log('info', ' remove Remove all containers');
165
+ logger.log('info', ' clean Remove all containers and data ⚠️');
166
+ logger.log('info', ' help Show this help message');
167
+ console.log();
168
+ logger.log('note', 'Features:');
169
+ logger.log('info', ' • Auto-creates .nogit/env.json with smart defaults');
170
+ logger.log('info', ' • Random ports (20000-30000) to avoid conflicts');
171
+ logger.log('info', ' • Project-specific containers for multi-project support');
172
+ logger.log('info', ' • Preserves custom configuration values');
173
+ logger.log('info', ' • MongoDB Compass connection support');
174
+ console.log();
175
+ logger.log('note', 'Examples:');
176
+ logger.log('info', ' gitzone services start # Start all services');
177
+ logger.log('info', ' gitzone services start mongo # Start only MongoDB');
178
+ logger.log('info', ' gitzone services stop # Stop all services');
179
+ logger.log('info', ' gitzone services status # Check service status');
180
+ logger.log('info', ' gitzone services config # Show configuration');
181
+ logger.log('info', ' gitzone services compass # Get MongoDB Compass connection');
182
+ logger.log('info', ' gitzone services logs mongo 50 # Show last 50 lines of MongoDB logs');
183
+ }
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDeEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUM1QyxNQUFNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUU1QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUN2QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUV0QyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLEtBQUssT0FBTztZQUNWLE1BQU0sV0FBVyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzQyxNQUFNO1FBRVIsS0FBSyxNQUFNO1lBQ1QsTUFBTSxVQUFVLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE1BQU07UUFFUixLQUFLLFNBQVM7WUFDWixNQUFNLGFBQWEsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0MsTUFBTTtRQUVSLEtBQUssUUFBUTtZQUNYLE1BQU0sY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLE1BQU07UUFFUixLQUFLLFFBQVE7WUFDWCxNQUFNLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxNQUFN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
@@ -0,0 +1,7 @@
1
+ export * from '../plugins.js';
2
+ import * as smartshell from '@push.rocks/smartshell';
3
+ import * as smartfile from '@push.rocks/smartfile';
4
+ import * as smartinteract from '@push.rocks/smartinteract';
5
+ import * as smartnetwork from '@push.rocks/smartnetwork';
6
+ import * as smartdelay from '@push.rocks/smartdelay';
7
+ export { smartshell, smartfile, smartinteract, smartnetwork, smartdelay };
@@ -0,0 +1,8 @@
1
+ export * from '../plugins.js';
2
+ import * as smartshell from '@push.rocks/smartshell';
3
+ import * as smartfile from '@push.rocks/smartfile';
4
+ import * as smartinteract from '@push.rocks/smartinteract';
5
+ import * as smartnetwork from '@push.rocks/smartnetwork';
6
+ import * as smartdelay from '@push.rocks/smartdelay';
7
+ export { smartshell, smartfile, smartinteract, smartnetwork, smartdelay };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfc2VydmljZXMvbW9kLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxhQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUMifQ==
@@ -7,4 +7,9 @@ import * as smartcli from '@push.rocks/smartcli';
7
7
  import * as smartpath from '@push.rocks/smartpath';
8
8
  import * as smartpromise from '@push.rocks/smartpromise';
9
9
  import * as smartupdate from '@push.rocks/smartupdate';
10
- export { smartlog, smartlogDestinationLocal, npmextra, path, projectinfo, smartcli, smartpath, smartpromise, smartupdate, };
10
+ import * as smartshell from '@push.rocks/smartshell';
11
+ import * as smartnetwork from '@push.rocks/smartnetwork';
12
+ import * as smartfile from '@push.rocks/smartfile';
13
+ import * as smartinteract from '@push.rocks/smartinteract';
14
+ import * as smartdelay from '@push.rocks/smartdelay';
15
+ export { smartlog, smartlogDestinationLocal, npmextra, path, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, };
@@ -7,5 +7,10 @@ import * as smartcli from '@push.rocks/smartcli';
7
7
  import * as smartpath from '@push.rocks/smartpath';
8
8
  import * as smartpromise from '@push.rocks/smartpromise';
9
9
  import * as smartupdate from '@push.rocks/smartupdate';
10
- export { smartlog, smartlogDestinationLocal, npmextra, path, projectinfo, smartcli, smartpath, smartpromise, smartupdate, };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssd0JBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUNMLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxHQUNaLENBQUMifQ==
10
+ import * as smartshell from '@push.rocks/smartshell';
11
+ import * as smartnetwork from '@push.rocks/smartnetwork';
12
+ import * as smartfile from '@push.rocks/smartfile';
13
+ import * as smartinteract from '@push.rocks/smartinteract';
14
+ import * as smartdelay from '@push.rocks/smartdelay';
15
+ export { smartlog, smartlogDestinationLocal, npmextra, path, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssd0JBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFDTCxRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFFBQVEsRUFDUixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVCxhQUFhLEVBQ2IsVUFBVSxHQUNYLENBQUMifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@git.zone/cli",
3
3
  "private": false,
4
- "version": "1.16.9",
4
+ "version": "1.17.1",
5
5
  "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.",
6
6
  "main": "dist_ts/index.ts",
7
7
  "typings": "dist_ts/index.d.ts",
@@ -10,6 +10,24 @@
10
10
  "gitzone": "./cli.js",
11
11
  "gzone": "./cli.js"
12
12
  },
13
+ "scripts": {
14
+ "test": "(npm run clean && npm run prepareTest && npm run testCli && npm run testFormat && npm run testCommit && npm run testDeprecate && npm run testVersion && npm run testReadme && npm run testUpdate && npm run testTemplateNpm && npm run testTemplateLit) && rm -rf test",
15
+ "build": "(tsbuild --web --allowimplicitany)",
16
+ "clean": "(rm -rf test/)",
17
+ "prepareTest": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)",
18
+ "testBuild": "npm run build && rm -r dist/",
19
+ "testCli": "(cd test && node ../cli.ts.js)",
20
+ "testCommit": "(cd test && node ../cli.ts.js commit)",
21
+ "testDeprecate": "(cd test && node ../cli.ts.js deprecate)",
22
+ "testOpen": "(cd test && node ../cli.ts.js open ci)",
23
+ "testReadme": "(cd test && node ../cli.ts.js readme)",
24
+ "testFormat": "(cd test && node ../cli.ts.js format)",
25
+ "testTemplateNpm": "(rm -rf test/testtemplate_npm/ && mkdir test/testtemplate_npm && cd test/testtemplate_npm && node ../../cli.ts.js template npm)",
26
+ "testTemplateLit": "(rm -rf test/testtemplate_lit/ && mkdir test/testtemplate_lit && cd test/testtemplate_lit && node ../../cli.ts.js template lit)",
27
+ "testUpdate": "(cd test && node ../cli.ts.js update)",
28
+ "testVersion": "(cd test && node ../cli.ts.js -v)",
29
+ "buildDocs": "tsdoc"
30
+ },
13
31
  "repository": {
14
32
  "type": "git",
15
33
  "url": "https://gitlab.com/gitzone/private/gitzone.git"
@@ -42,6 +60,11 @@
42
60
  "@git.zone/tsbuild": "^2.3.2",
43
61
  "@git.zone/tsrun": "^1.3.3",
44
62
  "@git.zone/tstest": "^1.0.96",
63
+ "@push.rocks/smartdelay": "^3.0.5",
64
+ "@push.rocks/smartfile": "^11.2.0",
65
+ "@push.rocks/smartinteract": "^2.0.16",
66
+ "@push.rocks/smartnetwork": "^4.1.2",
67
+ "@push.rocks/smartshell": "^3.2.3",
45
68
  "@types/node": "^22.15.18"
46
69
  },
47
70
  "dependencies": {
@@ -55,11 +78,8 @@
55
78
  "@push.rocks/projectinfo": "^5.0.2",
56
79
  "@push.rocks/smartchok": "^1.0.34",
57
80
  "@push.rocks/smartcli": "^4.0.11",
58
- "@push.rocks/smartdelay": "^3.0.5",
59
81
  "@push.rocks/smartdiff": "^1.0.3",
60
- "@push.rocks/smartfile": "^11.2.0",
61
82
  "@push.rocks/smartgulp": "^3.0.4",
62
- "@push.rocks/smartinteract": "^2.0.15",
63
83
  "@push.rocks/smartjson": "^5.0.20",
64
84
  "@push.rocks/smartlegal": "^1.0.27",
65
85
  "@push.rocks/smartlog": "^3.0.9",
@@ -71,7 +91,6 @@
71
91
  "@push.rocks/smartpath": "^5.0.18",
72
92
  "@push.rocks/smartpromise": "^4.2.3",
73
93
  "@push.rocks/smartscaf": "^4.0.16",
74
- "@push.rocks/smartshell": "^3.2.3",
75
94
  "@push.rocks/smartstream": "^3.2.5",
76
95
  "@push.rocks/smartunique": "^3.0.9",
77
96
  "@push.rocks/smartupdate": "^2.0.6",
@@ -94,22 +113,8 @@
94
113
  "browserslist": [
95
114
  "last 1 chrome versions"
96
115
  ],
97
- "scripts": {
98
- "test": "(npm run clean && npm run prepareTest && npm run testCli && npm run testFormat && npm run testCommit && npm run testDeprecate && npm run testVersion && npm run testReadme && npm run testUpdate && npm run testTemplateNpm && npm run testTemplateLit) && rm -rf test",
99
- "build": "(tsbuild --web --allowimplicitany)",
100
- "clean": "(rm -rf test/)",
101
- "prepareTest": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)",
102
- "testBuild": "npm run build && rm -r dist/",
103
- "testCli": "(cd test && node ../cli.ts.js)",
104
- "testCommit": "(cd test && node ../cli.ts.js commit)",
105
- "testDeprecate": "(cd test && node ../cli.ts.js deprecate)",
106
- "testOpen": "(cd test && node ../cli.ts.js open ci)",
107
- "testReadme": "(cd test && node ../cli.ts.js readme)",
108
- "testFormat": "(cd test && node ../cli.ts.js format)",
109
- "testTemplateNpm": "(rm -rf test/testtemplate_npm/ && mkdir test/testtemplate_npm && cd test/testtemplate_npm && node ../../cli.ts.js template npm)",
110
- "testTemplateLit": "(rm -rf test/testtemplate_lit/ && mkdir test/testtemplate_lit && cd test/testtemplate_lit && node ../../cli.ts.js template lit)",
111
- "testUpdate": "(cd test && node ../cli.ts.js update)",
112
- "testVersion": "(cd test && node ../cli.ts.js -v)",
113
- "buildDocs": "tsdoc"
114
- }
115
- }
116
+ "pnpm": {
117
+ "overrides": {}
118
+ },
119
+ "packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6"
120
+ }
package/readme.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  ## 🎯 What is gitzone?
9
9
 
10
- gitzone is a powerful command-line interface that supercharges your development workflow with automated project management, intelligent code formatting, and seamless version control. Whether you're bootstrapping a new TypeScript project, maintaining code quality, or managing complex multi-repository setups, gitzone has got you covered.
10
+ gitzone is a powerful command-line interface that supercharges your development workflow with automated project management, intelligent code formatting, seamless version control, and development service orchestration. Whether you're bootstrapping a new TypeScript project, maintaining code quality, managing complex multi-repository setups, or spinning up local development databases, gitzone has got you covered.
11
11
 
12
12
  ## 🏃‍♂️ Quick Start
13
13
 
@@ -23,7 +23,7 @@ pnpm add -g @git.zone/cli
23
23
 
24
24
  Once installed, you can use either `gitzone` or the shorter `gzone` command from anywhere in your terminal.
25
25
 
26
- ### Your First Command
26
+ ### Your First Commands
27
27
 
28
28
  ```bash
29
29
  # Create a new TypeScript npm package
@@ -32,12 +32,66 @@ gitzone template npm
32
32
  # Format your entire codebase
33
33
  gitzone format
34
34
 
35
+ # Start local MongoDB and MinIO services
36
+ gitzone services start
37
+
35
38
  # Create a semantic commit
36
39
  gitzone commit
37
40
  ```
38
41
 
39
42
  ## 🛠️ Core Features
40
43
 
44
+ ### 🐳 Development Services Management (NEW!)
45
+
46
+ Effortlessly manage local MongoDB and MinIO (S3-compatible) services for your development environment:
47
+
48
+ ```bash
49
+ gitzone services [command]
50
+ ```
51
+
52
+ **Available commands:**
53
+
54
+ - **`start [service]`** - Start services (mongo|s3|all)
55
+ - **`stop [service]`** - Stop services (mongo|s3|all)
56
+ - **`restart [service]`** - Restart services
57
+ - **`status`** - Show current service status
58
+ - **`config`** - Display configuration details
59
+ - **`compass`** - Get MongoDB Compass connection string with network IP
60
+ - **`logs [service] [lines]`** - View service logs
61
+ - **`remove`** - Remove containers (preserves data)
62
+ - **`clean`** - Remove containers AND data (⚠️ destructive)
63
+
64
+ **Key features:**
65
+
66
+ - 🎲 **Smart port assignment** - Automatically assigns random ports (20000-30000) to avoid conflicts
67
+ - 📦 **Project isolation** - Each project gets its own containers with unique names
68
+ - 💾 **Data persistence** - Data stored in `.nogit/` directories survives container restarts
69
+ - 🔗 **MongoDB Compass support** - Instantly get connection strings for GUI access
70
+ - 🌐 **Network IP detection** - Automatically detects your local network IP for remote connections
71
+ - ⚙️ **Auto-configuration** - Creates `.nogit/env.json` with smart defaults
72
+
73
+ **Example workflow:**
74
+
75
+ ```bash
76
+ # Start all services for your project
77
+ gitzone services start
78
+
79
+ # Check what's running
80
+ gitzone services status
81
+
82
+ # Get MongoDB Compass connection string
83
+ gitzone services compass
84
+ # Output: mongodb://defaultadmin:defaultpass@192.168.1.100:27018/myproject?authSource=admin
85
+
86
+ # View MongoDB logs
87
+ gitzone services logs mongo 50
88
+
89
+ # Stop services when done
90
+ gitzone services stop
91
+ ```
92
+
93
+ The services are configured via `.nogit/env.json` which is automatically created with secure defaults and random ports for each project.
94
+
41
95
  ### 📦 Project Templates
42
96
 
43
97
  Instantly scaffold production-ready projects with best practices built-in:
@@ -279,43 +333,52 @@ Customize gitzone behavior through `npmextra.json`:
279
333
  ### For New Projects
280
334
 
281
335
  1. Start with a template: `gitzone template npm`
282
- 2. Customize the generated structure
283
- 3. Run initial format: `gitzone format`
284
- 4. Set up CI/CD: `gitzone open ci`
336
+ 2. Set up local services: `gitzone services start`
337
+ 3. Customize the generated structure
338
+ 4. Run initial format: `gitzone format`
339
+ 5. Set up CI/CD: `gitzone open ci`
285
340
 
286
341
  ### For Existing Projects
287
342
 
288
343
  1. Initialize: `gitzone start`
289
344
  2. Format codebase: `gitzone format --dry-run` (preview first!)
290
345
  3. Apply formatting: `gitzone format --yes`
291
- 4. Commit changes: `gitzone commit`
346
+ 4. Set up services: `gitzone services start`
347
+ 5. Commit changes: `gitzone commit`
292
348
 
293
349
  ### For Teams
294
350
 
295
351
  1. Document format preferences in `npmextra.json`
296
- 2. Use `--save-plan` for reviewable format changes
297
- 3. Enable rollback for safety
298
- 4. Standardize commit conventions
352
+ 2. Share `.nogit/env.json` template for consistent service setup
353
+ 3. Use `--save-plan` for reviewable format changes
354
+ 4. Enable rollback for safety
355
+ 5. Standardize commit conventions
299
356
 
300
357
  ## 🎯 Common Workflows
301
358
 
302
- ### Clean Development Cycle
359
+ ### Full-Stack Development Cycle
303
360
 
304
361
  ```bash
305
362
  # 1. Start fresh
306
363
  gitzone start
307
364
 
308
- # 2. Make changes
365
+ # 2. Spin up databases and services
366
+ gitzone services start
367
+
368
+ # 3. Make changes
309
369
  # ... your development work ...
310
370
 
311
- # 3. Format code
371
+ # 4. Check service logs if needed
372
+ gitzone services logs mongo
373
+
374
+ # 5. Format code
312
375
  gitzone format
313
376
 
314
- # 4. Commit with semantic versioning
377
+ # 6. Commit with semantic versioning
315
378
  gitzone commit
316
379
 
317
- # 5. Deploy (if CI/CD configured)
318
- # Automatic via git push
380
+ # 7. Stop services when done
381
+ gitzone services stop
319
382
  ```
320
383
 
321
384
  ### Multi-Repository Management
@@ -349,6 +412,25 @@ gitzone format --from-plan format-changes.json
349
412
  gitzone format --rollback
350
413
  ```
351
414
 
415
+ ### Database-Driven Development
416
+
417
+ ```bash
418
+ # 1. Start MongoDB and MinIO
419
+ gitzone services start
420
+
421
+ # 2. Get connection string for your app
422
+ gitzone services config
423
+
424
+ # 3. Connect with MongoDB Compass
425
+ gitzone services compass
426
+
427
+ # 4. Monitor services
428
+ gitzone services status
429
+
430
+ # 5. Clean everything when done
431
+ gitzone services clean # ⚠️ Warning: deletes data
432
+ ```
433
+
352
434
  ## 🔌 Integrations
353
435
 
354
436
  ### CI/CD Platforms
@@ -363,6 +445,9 @@ gitzone format --rollback
363
445
  - **Prettier** - Code formatting
364
446
  - **ESLint** - Linting (via format modules)
365
447
  - **npm/pnpm** - Package management
448
+ - **MongoDB** - Local database service
449
+ - **MinIO** - S3-compatible object storage
450
+ - **MongoDB Compass** - Database GUI integration
366
451
 
367
452
  ### Version Control
368
453
 
@@ -377,6 +462,8 @@ gitzone format --rollback
377
462
  3. **Leverage templates**: Start projects right with proven structures
378
463
  4. **Enable caching**: Dramatically speeds up formatting operations
379
464
  5. **Save format plans**: Review changes before applying in production
465
+ 6. **Port management**: Let services auto-assign ports to avoid conflicts
466
+ 7. **Use MongoDB Compass**: `gitzone services compass` for visual DB management
380
467
 
381
468
  ## 🐛 Troubleshooting
382
469
 
@@ -396,6 +483,18 @@ Ensure Docker daemon is running:
396
483
  docker info
397
484
  ```
398
485
 
486
+ ### Services Won't Start
487
+
488
+ Check for port conflicts:
489
+
490
+ ```bash
491
+ # Services auto-assign ports, but you can check the config
492
+ cat .nogit/env.json
493
+
494
+ # Verify Docker is running
495
+ docker ps
496
+ ```
497
+
399
498
  ### Template Creation Issues
400
499
 
401
500
  Verify npm/pnpm is properly configured:
@@ -404,6 +503,12 @@ Verify npm/pnpm is properly configured:
404
503
  npm config get registry
405
504
  ```
406
505
 
506
+ ### MongoDB Connection Issues
507
+
508
+ - Ensure services are running: `gitzone services status`
509
+ - Check firewall settings for the assigned ports
510
+ - Use `gitzone services compass` for the correct connection string
511
+
407
512
  ## 📈 Performance
408
513
 
409
514
  gitzone is optimized for speed:
@@ -412,6 +517,8 @@ gitzone is optimized for speed:
412
517
  - **Smart caching** to avoid redundant work
413
518
  - **Incremental updates** for meta repositories
414
519
  - **Minimal dependencies** for fast installation
520
+ - **Isolated services** prevent resource conflicts
521
+ - **Auto port assignment** eliminates manual configuration
415
522
 
416
523
  ## License and Legal Information
417
524
 
@@ -430,4 +537,4 @@ Registered at District court Bremen HRB 35230 HB, Germany
430
537
 
431
538
  For any legal inquiries or if you require further information, please contact us via email at hello@task.vc.
432
539
 
433
- By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.
540
+ By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.