dev-env-kit 0.1.3 → 1.1.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.
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.isInteractive = isInteractive;
40
+ exports.getDefaultProjectName = getDefaultProjectName;
41
+ exports.runInit = runInit;
42
+ const path = __importStar(require("path"));
43
+ const yaml = __importStar(require("js-yaml"));
44
+ const prompts_1 = __importDefault(require("prompts"));
45
+ const file_ops_1 = require("../utils/file-ops");
46
+ const logger_1 = require("../utils/logger");
47
+ const config_1 = require("../types/config");
48
+ const DEPENDENCY_TYPES = ['npm', 'yarn', 'pnpm', 'pip', 'pipenv', 'poetry', 'cargo', 'go', 'custom'];
49
+ const DATABASE_TYPES = ['postgresql', 'mysql', 'mariadb', 'mongodb', 'redis', 'sqlite'];
50
+ const DEFAULT_DEPENDENCY_COMMANDS = {
51
+ npm: 'npm install',
52
+ yarn: 'yarn install',
53
+ pnpm: 'pnpm install',
54
+ pip: 'pip install -r requirements.txt',
55
+ pipenv: 'pipenv install',
56
+ poetry: 'poetry install',
57
+ cargo: 'cargo build',
58
+ go: 'go mod download',
59
+ custom: '',
60
+ };
61
+ function isInteractive() {
62
+ return Boolean(process.stdout.isTTY);
63
+ }
64
+ async function getDefaultProjectName(projectRoot) {
65
+ const pkgPath = path.join(projectRoot, 'package.json');
66
+ if (await (0, file_ops_1.fileExists)(pkgPath)) {
67
+ try {
68
+ const pkg = await (0, file_ops_1.readJson)(pkgPath);
69
+ if (pkg?.name && typeof pkg.name === 'string') {
70
+ return pkg.name.trim() || path.basename(projectRoot);
71
+ }
72
+ }
73
+ catch {
74
+ // ignore
75
+ }
76
+ }
77
+ return path.basename(projectRoot) || 'my-project';
78
+ }
79
+ async function runWizard(projectRoot) {
80
+ const defaultName = await getDefaultProjectName(projectRoot);
81
+ const basic = await (0, prompts_1.default)([
82
+ {
83
+ type: 'text',
84
+ name: 'name',
85
+ message: 'Config name (used in messages like "Setup complete for …")',
86
+ initial: defaultName,
87
+ validate: (v) => (v?.trim() ? true : 'Name is required'),
88
+ },
89
+ {
90
+ type: 'text',
91
+ name: 'version',
92
+ message: 'Version (optional)',
93
+ initial: '1.0.0',
94
+ },
95
+ ], { onCancel: () => process.exit(0) });
96
+ const addDeps = await (0, prompts_1.default)({
97
+ type: 'confirm',
98
+ name: 'value',
99
+ message: 'Add dependencies? (optional)',
100
+ initial: true,
101
+ }, { onCancel: () => process.exit(0) });
102
+ const dependencies = [];
103
+ if (addDeps.value) {
104
+ const depTypes = await (0, prompts_1.default)({
105
+ type: 'multiselect',
106
+ name: 'types',
107
+ message: 'Choose dependency type(s)',
108
+ choices: DEPENDENCY_TYPES.map((t) => ({ title: t, value: t })),
109
+ min: 1,
110
+ }, { onCancel: () => process.exit(0) });
111
+ for (const type of depTypes.types) {
112
+ const cmd = await (0, prompts_1.default)([
113
+ {
114
+ type: 'text',
115
+ name: 'path',
116
+ message: `Path for ${type}`,
117
+ initial: '.',
118
+ },
119
+ {
120
+ type: 'text',
121
+ name: 'command',
122
+ message: `Command for ${type}`,
123
+ initial: DEFAULT_DEPENDENCY_COMMANDS[type] ?? '',
124
+ },
125
+ ], { onCancel: () => process.exit(0) });
126
+ if (cmd.command?.trim()) {
127
+ dependencies.push({ type: type, command: cmd.command.trim(), path: cmd.path?.trim() || '.' });
128
+ }
129
+ }
130
+ }
131
+ const addDb = await (0, prompts_1.default)({
132
+ type: 'confirm',
133
+ name: 'value',
134
+ message: 'Add a database? (optional)',
135
+ initial: false,
136
+ }, { onCancel: () => process.exit(0) });
137
+ const databases = [];
138
+ if (addDb.value) {
139
+ const dbChoice = await (0, prompts_1.default)({
140
+ type: 'select',
141
+ name: 'type',
142
+ message: 'Database type',
143
+ choices: [...DATABASE_TYPES.map((t) => ({ title: t, value: t })), { title: 'None', value: 'none' }],
144
+ }, { onCancel: () => process.exit(0) });
145
+ if (dbChoice.type !== 'none') {
146
+ const dbPrompts = [
147
+ { type: 'text', name: 'name', message: 'Database name (optional)', initial: 'db' },
148
+ { type: 'text', name: 'version', message: 'Version (e.g. 15 for Postgres)', initial: '15' },
149
+ { type: 'number', name: 'port', message: 'Port', initial: dbChoice.type === 'redis' ? 6379 : 5432 },
150
+ { type: 'text', name: 'host', message: 'Host', initial: 'localhost' },
151
+ { type: 'text', name: 'user', message: 'User (use ${DB_USER} for .env)', initial: '${DB_USER}' },
152
+ { type: 'text', name: 'password', message: 'Password (use ${DB_PASSWORD} for .env)', initial: '${DB_PASSWORD}' },
153
+ ];
154
+ if (dbChoice.type !== 'redis' && dbChoice.type !== 'sqlite') {
155
+ dbPrompts.push({ type: 'text', name: 'database', message: 'Database name', initial: 'myapp' });
156
+ }
157
+ const dbAnswers = await (0, prompts_1.default)(dbPrompts, { onCancel: () => process.exit(0) });
158
+ const db = {
159
+ type: dbChoice.type,
160
+ name: dbAnswers.name || undefined,
161
+ version: dbAnswers.version || undefined,
162
+ port: dbAnswers.port,
163
+ host: dbAnswers.host || 'localhost',
164
+ user: dbAnswers.user || undefined,
165
+ password: dbAnswers.password || undefined,
166
+ database: dbAnswers.database || undefined,
167
+ };
168
+ const addMigrations = await (0, prompts_1.default)({ type: 'confirm', name: 'value', message: 'Add migrations?', initial: false }, { onCancel: () => process.exit(0) });
169
+ if (addMigrations.value) {
170
+ const mig = await (0, prompts_1.default)([
171
+ { type: 'text', name: 'path', message: 'Migrations path', initial: './migrations' },
172
+ { type: 'text', name: 'command', message: 'Migrations command', initial: 'npm run migrate' },
173
+ ], { onCancel: () => process.exit(0) });
174
+ db.migrations = [{ path: mig.path || './migrations', command: mig.command || 'npm run migrate' }];
175
+ }
176
+ const addSeed = await (0, prompts_1.default)({ type: 'confirm', name: 'value', message: 'Add seed command?', initial: false }, { onCancel: () => process.exit(0) });
177
+ if (addSeed.value) {
178
+ const seedCmd = await (0, prompts_1.default)({ type: 'text', name: 'command', message: 'Seed command', initial: 'npm run seed' }, { onCancel: () => process.exit(0) });
179
+ db.seed = { command: seedCmd.command || 'npm run seed' };
180
+ }
181
+ databases.push(db);
182
+ }
183
+ }
184
+ const addService = await (0, prompts_1.default)({ type: 'confirm', name: 'value', message: 'Add a service (e.g. RabbitMQ, Redis)? (optional)', initial: false }, { onCancel: () => process.exit(0) });
185
+ const services = [];
186
+ if (addService.value) {
187
+ const svc = await (0, prompts_1.default)([
188
+ { type: 'text', name: 'type', message: 'Service type', initial: 'rabbitmq' },
189
+ { type: 'text', name: 'version', message: 'Version', initial: '3.12' },
190
+ { type: 'number', name: 'port', message: 'Port', initial: 5672 },
191
+ { type: 'number', name: 'management_port', message: 'Management port (optional, 0 to skip)', initial: 15672 },
192
+ ], { onCancel: () => process.exit(0) });
193
+ if (svc.type?.trim()) {
194
+ services.push({
195
+ type: svc.type.trim(),
196
+ version: svc.version || undefined,
197
+ port: svc.port,
198
+ host: 'localhost',
199
+ ...(svc.management_port && svc.management_port > 0 ? { management_port: svc.management_port } : {}),
200
+ });
201
+ }
202
+ }
203
+ const addEnv = await (0, prompts_1.default)({ type: 'confirm', name: 'value', message: 'Add environment variables? (optional)', initial: true }, { onCancel: () => process.exit(0) });
204
+ let env = {};
205
+ if (addEnv.value) {
206
+ env = { NODE_ENV: 'development' };
207
+ if (databases.length > 0 && databases[0].type === 'postgresql') {
208
+ const db = databases[0];
209
+ env.DATABASE_URL = `postgresql://\${DB_USER}:\${DB_PASSWORD}@${db.host || 'localhost'}:${db.port || 5432}/${db.database || 'myapp'}`;
210
+ }
211
+ }
212
+ const dockerEnabled = await (0, prompts_1.default)({ type: 'confirm', name: 'value', message: 'Enable Docker Compose generation? (optional)', initial: true }, { onCancel: () => process.exit(0) });
213
+ const docker = dockerEnabled.value
214
+ ? { enabled: true, output_file: 'docker-compose.yml', network_name: 'dev-network' }
215
+ : { enabled: false, output_file: 'docker-compose.yml', network_name: 'dev-network' };
216
+ const snapshot = {
217
+ include_databases: true,
218
+ include_volumes: true,
219
+ exclude_paths: ['node_modules', '.git', 'dist', 'build'],
220
+ };
221
+ let health_checks = [];
222
+ if (databases.length > 0 && (databases[0].type === 'postgresql' || databases[0].type === 'mysql' || databases[0].type === 'mongodb' || databases[0].type === 'redis')) {
223
+ const addHealth = await (0, prompts_1.default)({ type: 'confirm', name: 'value', message: 'Add a health check for the database? (optional)', initial: true }, { onCancel: () => process.exit(0) });
224
+ if (addHealth.value) {
225
+ const db = databases[0];
226
+ if (db.type === 'redis') {
227
+ health_checks = [{ name: 'redis', type: 'redis', url: `redis://${db.host || 'localhost'}:${db.port || 6379}` }];
228
+ }
229
+ else if (db.type === 'postgresql') {
230
+ health_checks = [
231
+ {
232
+ name: 'database',
233
+ type: 'postgresql',
234
+ connection_string: `postgresql://\${DB_USER}:\${DB_PASSWORD}@${db.host || 'localhost'}:${db.port || 5432}/${db.database || 'myapp'}`,
235
+ },
236
+ ];
237
+ }
238
+ else if (db.type === 'mysql' || db.type === 'mariadb') {
239
+ health_checks = [
240
+ {
241
+ name: 'database',
242
+ type: db.type,
243
+ connection_string: `mysql://\${DB_USER}:\${DB_PASSWORD}@${db.host || 'localhost'}:${db.port || 3306}/${db.database || 'myapp'}`,
244
+ },
245
+ ];
246
+ }
247
+ else if (db.type === 'mongodb') {
248
+ health_checks = [
249
+ {
250
+ name: 'database',
251
+ type: 'mongodb',
252
+ connection_string: `mongodb://\${DB_USER}:\${DB_PASSWORD}@${db.host || 'localhost'}:${db.port || 27017}/${db.database || 'myapp'}`,
253
+ },
254
+ ];
255
+ }
256
+ }
257
+ }
258
+ const raw = {
259
+ name: basic.name?.trim() || defaultName,
260
+ version: basic.version?.trim() || '1.0.0',
261
+ dependencies,
262
+ databases,
263
+ services,
264
+ env,
265
+ health_checks,
266
+ snapshot,
267
+ docker,
268
+ };
269
+ const parsed = config_1.DevEnvConfigSchema.parse(raw);
270
+ return parsed;
271
+ }
272
+ /**
273
+ * Run the init wizard and write `.dev-env.yml` in the project root.
274
+ * Exported for use by the CLI and by loadConfigOrPromptInit.
275
+ */
276
+ async function runInit(projectRoot) {
277
+ if (!isInteractive()) {
278
+ logger_1.logger.error('No config found. Run `envkit init` in a terminal to create one.');
279
+ throw new Error('Not in an interactive terminal. Run `envkit init` in a terminal to create a config file.');
280
+ }
281
+ const configPath = path.join(projectRoot, '.dev-env.yml');
282
+ if (await (0, file_ops_1.fileExists)(configPath)) {
283
+ const overwrite = await (0, prompts_1.default)({ type: 'confirm', name: 'value', message: 'File .dev-env.yml already exists. Overwrite?', initial: false }, { onCancel: () => process.exit(0) });
284
+ if (!overwrite.value) {
285
+ logger_1.logger.info('Skipped. Existing .dev-env.yml was not changed.');
286
+ return;
287
+ }
288
+ }
289
+ const config = await runWizard(projectRoot);
290
+ const yamlContent = yaml.dump(config, { lineWidth: -1 });
291
+ await (0, file_ops_1.writeFile)(configPath, yamlContent);
292
+ logger_1.logger.success(`Created ${configPath}`);
293
+ }
294
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runPathSetup(): Promise<void>;
2
+ //# sourceMappingURL=path-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-setup.d.ts","sourceRoot":"","sources":["../../src/commands/path-setup.ts"],"names":[],"mappings":"AAwEA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAyClD"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.runPathSetup = runPathSetup;
40
+ const child_process_1 = require("child_process");
41
+ const path = __importStar(require("path"));
42
+ const fs = __importStar(require("fs"));
43
+ const prompts_1 = __importDefault(require("prompts"));
44
+ const platform_1 = require("../utils/platform");
45
+ const logger_1 = require("../utils/logger");
46
+ const init_1 = require("./init");
47
+ function getNpmGlobalBin() {
48
+ try {
49
+ const out = (0, child_process_1.execSync)('npm bin -g', { encoding: 'utf-8' });
50
+ return out.trim();
51
+ }
52
+ catch {
53
+ throw new Error('Could not get npm global bin path. Make sure npm is installed and in your PATH.');
54
+ }
55
+ }
56
+ function isInPath(pathToCheck) {
57
+ const pathEnv = process.env.PATH || process.env.Path || '';
58
+ const sep = process.platform === 'win32' ? ';' : ':';
59
+ const parts = pathEnv.split(sep).map((p) => p.trim());
60
+ const normalized = path.normalize(pathToCheck);
61
+ return parts.some((p) => path.normalize(p) === normalized || p === pathToCheck);
62
+ }
63
+ function addToPathWindows(binPath) {
64
+ const scriptPath = path.join((0, platform_1.getTempDirectory)(), `envkit-path-setup-${Date.now()}.ps1`);
65
+ const script = `
66
+ param([string]$PathToAdd)
67
+ $current = [Environment]::GetEnvironmentVariable('Path', 'User')
68
+ if ($current -and -not $current.EndsWith(';')) { $current += ';' }
69
+ $newPath = $current + $PathToAdd
70
+ [Environment]::SetEnvironmentVariable('Path', $newPath, 'User')
71
+ `.trim();
72
+ fs.writeFileSync(scriptPath, script);
73
+ try {
74
+ (0, child_process_1.execSync)(`powershell -NoProfile -ExecutionPolicy Bypass -File "${scriptPath}" -PathToAdd "${binPath.replace(/"/g, '`"')}"`, {
75
+ stdio: 'pipe',
76
+ });
77
+ }
78
+ finally {
79
+ try {
80
+ fs.unlinkSync(scriptPath);
81
+ }
82
+ catch {
83
+ // ignore
84
+ }
85
+ }
86
+ }
87
+ function addToPathUnix(binPath) {
88
+ const home = (0, platform_1.getHomeDirectory)();
89
+ const exportLine = `\nexport PATH="$PATH:${binPath}"\n`;
90
+ const candidates = [path.join(home, '.zshrc'), path.join(home, '.bashrc'), path.join(home, '.profile')];
91
+ let target = null;
92
+ for (const f of candidates) {
93
+ if (fs.existsSync(f)) {
94
+ target = f;
95
+ break;
96
+ }
97
+ }
98
+ if (!target) {
99
+ target = path.join(home, '.profile');
100
+ }
101
+ let content = fs.existsSync(target) ? fs.readFileSync(target, 'utf-8') : '';
102
+ if (content.includes(binPath)) {
103
+ return;
104
+ }
105
+ content += exportLine;
106
+ fs.writeFileSync(target, content);
107
+ }
108
+ async function runPathSetup() {
109
+ const binPath = getNpmGlobalBin();
110
+ if (isInPath(binPath)) {
111
+ logger_1.logger.info('envkit is already on your PATH.');
112
+ return;
113
+ }
114
+ if (!(0, init_1.isInteractive)()) {
115
+ logger_1.logger.info(`To use 'envkit' from any folder, add this to your PATH:\n ${binPath}`);
116
+ logger_1.logger.info('Or run "envkit path-setup" in an interactive terminal to add it automatically.');
117
+ return;
118
+ }
119
+ const { value: agree } = await (0, prompts_1.default)({
120
+ type: 'confirm',
121
+ name: 'value',
122
+ message: `Add envkit to your PATH?\n ${binPath}\n\nThis lets you run "envkit" from any folder. (y/n)`,
123
+ initial: true,
124
+ }, { onCancel: () => process.exit(0) });
125
+ if (!agree) {
126
+ logger_1.logger.info('Skipped. You can run "envkit path-setup" again later or add the path manually.');
127
+ return;
128
+ }
129
+ const os = (0, platform_1.detectOS)();
130
+ try {
131
+ if (os === 'windows') {
132
+ addToPathWindows(binPath);
133
+ }
134
+ else {
135
+ addToPathUnix(binPath);
136
+ }
137
+ logger_1.logger.success('PATH updated. Restart your terminal (or open a new one) for "envkit" to be available.');
138
+ }
139
+ catch (err) {
140
+ logger_1.logger.error(err.message ?? 'Failed to update PATH.');
141
+ throw err;
142
+ }
143
+ }
144
+ //# sourceMappingURL=path-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-setup.js","sourceRoot":"","sources":["../../src/commands/path-setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAoCD,wBAAsB,QAAQ,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DxE"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgCD,wBAAsB,QAAQ,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DxE"}
@@ -39,7 +39,6 @@ const loader_1 = require("../core/config/loader");
39
39
  const validator_1 = require("../core/config/validator");
40
40
  const logger_1 = require("../utils/logger");
41
41
  const exec_1 = require("../utils/exec");
42
- //Parse a command string into executable and args (split on whitespace)
43
42
  function parseCommand(commandStr) {
44
43
  const parts = commandStr.trim().split(/\s+/).filter(Boolean);
45
44
  if (parts.length === 0) {
@@ -47,7 +46,6 @@ function parseCommand(commandStr) {
47
46
  }
48
47
  return { cmd: parts[0], args: parts.slice(1) };
49
48
  }
50
- //Run a single dependency install (command in path with merged env)
51
49
  async function runDependency(dep, projectRoot, env, dryRun) {
52
50
  const cwd = path.resolve(projectRoot, dep.path);
53
51
  const { cmd, args } = parseCommand(dep.command);
@@ -66,7 +64,7 @@ async function runSetup(options = {}) {
66
64
  const { skipDeps = false, skipDb = false, dryRun = false } = options;
67
65
  const projectRoot = await (0, loader_1.findProjectRoot)(process.cwd());
68
66
  logger_1.logger.debug(`Project root: ${projectRoot}`);
69
- const config = await (0, loader_1.loadConfig)(projectRoot);
67
+ const config = await (0, loader_1.loadConfigOrPromptInit)(projectRoot);
70
68
  (0, validator_1.checkConfigWarnings)(config);
71
69
  const env = config.env ?? {};
72
70
  if (dryRun) {
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,4BA4DC;AAvGD,2CAA6B;AAC7B,kDAAgF;AAChF,wDAA+D;AAE/D,4CAAyC;AACzC,wCAAqC;AAQrC,SAAS,YAAY,CAAC,UAAkB;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAe,EACf,WAAmB,EACnB,GAA2B,EAC3B,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,MAAM,EAAE,CAAC;QACX,eAAM,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;IACvE,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,EAAE;QACpB,GAAG;QACH,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAA4B;QACzD,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,UAAwB,EAAE;IACvD,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAErE,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,eAAM,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAiB,MAAM,IAAA,+BAAsB,EAAC,WAAW,CAAC,CAAC;IACvE,IAAA,+BAAmB,EAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IAE7B,IAAI,MAAM,EAAE,CAAC;QACX,eAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,eAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBAC1B,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;oBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAChD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAChD,IAAI,MAAM,EAAE,CAAC;wBACX,eAAM,CAAC,IAAI,CAAC,oCAAoC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC9E,CAAC;yBAAM,CAAC;wBACN,eAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;wBACnD,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,EAAE;4BACpB,GAAG;4BACH,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAA4B;4BACzD,MAAM,EAAE,KAAK;yBACd,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpD,eAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC;gBAC5C,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,EAAE;oBACpB,GAAG,EAAE,WAAW;oBAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAA4B;oBACzD,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC7B,eAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,OAAO,CAAC,sBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -75,7 +75,7 @@ function sanitizeConfigForShare(config) {
75
75
  }
76
76
  async function runShareExport(options = {}) {
77
77
  const projectRoot = await (0, loader_1.findProjectRoot)(process.cwd());
78
- const config = await (0, loader_1.loadConfig)(projectRoot);
78
+ const config = await (0, loader_1.loadConfigOrPromptInit)(projectRoot);
79
79
  const sanitized = sanitizeConfigForShare(config);
80
80
  const yamlContent = yaml.dump(sanitized, { lineWidth: -1 });
81
81
  const outputFile = options.output ?? 'dev-env.shared.yml';
@@ -1 +1 @@
1
- {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ const file_ops_1 = require("../utils/file-ops");
43
43
  const logger_1 = require("../utils/logger");
44
44
  async function runSnapshotCreate(name) {
45
45
  const projectRoot = await (0, loader_1.findProjectRoot)(process.cwd());
46
- await (0, loader_1.loadConfig)(projectRoot);
46
+ await (0, loader_1.loadConfigOrPromptInit)(projectRoot);
47
47
  const configPath = path.join(projectRoot, '.dev-env.yml');
48
48
  const configYaml = await (0, file_ops_1.readFile)(configPath);
49
49
  const snapshotName = name && name.trim() ? name.trim() : `snapshot-${new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/commands/snapshot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8CAYC;AAED,0CAaC;AAED,gDAYC;AA/CD,2CAA6B;AAC7B,kDAAoE;AACpE,sDAA4F;AAC5F,gDAAwD;AACxD,4CAAyC;AAElC,KAAK,UAAU,iBAAiB,CAAC,IAAa;IACnD,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,IAAA,mBAAU,EAAC,WAAW,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,IAAA,mBAAQ,EAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,YAAY,GAChB,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAChH,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAc,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAEzE,eAAM,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,eAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,eAAe,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAiB,EAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExC,eAAM,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/commands/snapshot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8CAYC;AAED,0CAaC;AAED,gDAYC;AA/CD,2CAA6B;AAC7B,kDAAgF;AAChF,sDAA4F;AAC5F,gDAAwD;AACxD,4CAAyC;AAElC,KAAK,UAAU,iBAAiB,CAAC,IAAa;IACnD,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,IAAA,+BAAsB,EAAC,WAAW,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,IAAA,mBAAQ,EAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,YAAY,GAChB,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAChH,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAc,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAEzE,eAAM,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,eAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,eAAe,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAiB,EAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExC,eAAM,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACvE,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { DevEnvConfig } from '../../types/config';
2
2
  export declare function loadEnvFile(projectRoot: string): Promise<void>;
3
- /**
4
- * Resolve environment variable references in strings
5
- * Supports ${VAR_NAME} syntax
6
- */
7
3
  export declare function resolveEnvVars(value: string, env?: Record<string, string>): string;
8
4
  export declare function loadConfig(projectRoot?: string): Promise<DevEnvConfig>;
5
+ /**
6
+ * Load config, or (when missing) offer to run `envkit init` in interactive terminals.
7
+ *
8
+ * - If `.dev-env.yml` exists: behaves like `loadConfig`.
9
+ * - If missing and not a TTY: throws with a message suggesting `envkit init`.
10
+ * - If missing and TTY: prompts the user to run init now; on yes, runs init then loads.
11
+ */
12
+ export declare function loadConfigOrPromptInit(projectRoot?: string): Promise<DevEnvConfig>;
9
13
  export declare function findProjectRoot(startPath?: string): Promise<string>;
10
14
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/config/loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAGtE,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAWtF;AAID,wBAAsB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CA2C3F;AAmBD,wBAAsB,eAAe,CAAC,SAAS,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBxF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/config/loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAItE,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAWtF;AAED,wBAAsB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CA2C3F;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CA+BvG;AAiBD,wBAAsB,eAAe,CAAC,SAAS,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBxF"}