@cristiancorreau/forge 2.2.0 → 2.4.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.
- package/README.md +52 -109
- package/assets/core/hooks/pre-bash-check.js +144 -0
- package/assets/core/hooks/pre-edit-check.js +166 -0
- package/dist/cli.js +1 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +27 -7
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +54 -19
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +88 -37
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +43 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/lib/detect.d.ts +13 -0
- package/dist/lib/detect.d.ts.map +1 -0
- package/dist/lib/detect.js +85 -0
- package/dist/lib/detect.js.map +1 -0
- package/dist/lib/generators/claude-code.d.ts.map +1 -1
- package/dist/lib/generators/claude-code.js +7 -1
- package/dist/lib/generators/claude-code.js.map +1 -1
- package/dist/lib/lock.d.ts +15 -0
- package/dist/lib/lock.d.ts.map +1 -0
- package/dist/lib/lock.js +48 -0
- package/dist/lib/lock.js.map +1 -0
- package/dist/lib/wizard.d.ts +3 -2
- package/dist/lib/wizard.d.ts.map +1 -1
- package/dist/lib/wizard.js +211 -142
- package/dist/lib/wizard.js.map +1 -1
- package/dist/ui/box.d.ts +2 -0
- package/dist/ui/box.d.ts.map +1 -0
- package/dist/ui/box.js +15 -0
- package/dist/ui/box.js.map +1 -0
- package/dist/ui/colors.d.ts +15 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +19 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/spinner.d.ts +9 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +46 -0
- package/dist/ui/spinner.js.map +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAiF5D"}
|
|
@@ -73,7 +73,7 @@ export function generateClaudeMd(config) {
|
|
|
73
73
|
const progressPath = paths?.progress ?? 'docs/progress.html';
|
|
74
74
|
const agentScopeSection = buildAgentScopeTable(agents, paths);
|
|
75
75
|
const complianceSection = compliance.frameworks && compliance.frameworks.length > 0
|
|
76
|
-
? `\n## Compliance activo\n\nEste proyecto opera bajo
|
|
76
|
+
? `\n## Compliance activo\n\nEste proyecto opera bajo: ${compliance.frameworks.map(f => `**${f.toUpperCase()}**`).join(', ')}\n\nReglas no-negociables:\n- Sin datos personales en logs de stdout\n- Consentimiento explícito antes de cualquier tracker no esencial\n- Logs de auditoría append-only (sin UPDATE/DELETE)\n- Derechos del titular implementados (acceso, rectificación, supresión, portabilidad)\n`
|
|
77
77
|
: '';
|
|
78
78
|
return `# CLAUDE.md — ${name}
|
|
79
79
|
|
|
@@ -96,7 +96,13 @@ ${agentScopeSection}## Estructura
|
|
|
96
96
|
\`\`\`
|
|
97
97
|
${proj.slug ?? 'proyecto'}/
|
|
98
98
|
├── CLAUDE.md ← Estás acá
|
|
99
|
+
├── AGENTS.md ← Convenciones del agent team
|
|
99
100
|
├── project.yaml ← Config de forge (fuente de verdad)
|
|
101
|
+
├── .claude/
|
|
102
|
+
│ ├── agents/ ← Agentes instalados
|
|
103
|
+
│ ├── hooks/ ← Hooks de guardrail (JS, sin Python)
|
|
104
|
+
│ ├── commands/ ← Slash commands del flujo SDD
|
|
105
|
+
│ └── architecture.rules ← Convenciones de arquitectura del proyecto
|
|
100
106
|
├── ${specsPath}/ ← Specs de features (requeridas antes de implementar)
|
|
101
107
|
└── ${progressPath} ← Dashboard de progreso
|
|
102
108
|
\`\`\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ForgeManifest {
|
|
2
|
+
forgeVersion: string;
|
|
3
|
+
runtime: string;
|
|
4
|
+
installedAt: string;
|
|
5
|
+
files: Record<string, {
|
|
6
|
+
sha256: string;
|
|
7
|
+
installedAt: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
export declare function loadManifest(projectRoot: string): ForgeManifest | null;
|
|
11
|
+
export declare function saveManifest(projectRoot: string, manifest: ForgeManifest): void;
|
|
12
|
+
export declare function sha256file(absPath: string): string;
|
|
13
|
+
export declare function buildManifest(runtime: string, files: string[], projectRoot: string, forgeVersion: string, timestamp: string): ForgeManifest;
|
|
14
|
+
export declare function checkOutdated(projectRoot: string, manifest: ForgeManifest): string[];
|
|
15
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/lib/lock.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAID,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAKtE;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAI/E;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,aAAa,CASf;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,EAAE,CAQpF"}
|
package/dist/lib/lock.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { createHash } from 'crypto';
|
|
4
|
+
const MANIFEST_PATH = '.forge/manifest.json';
|
|
5
|
+
export function loadManifest(projectRoot) {
|
|
6
|
+
const path = join(projectRoot, MANIFEST_PATH);
|
|
7
|
+
if (!existsSync(path))
|
|
8
|
+
return null;
|
|
9
|
+
try {
|
|
10
|
+
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function saveManifest(projectRoot, manifest) {
|
|
17
|
+
const path = join(projectRoot, MANIFEST_PATH);
|
|
18
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
19
|
+
writeFileSync(path, JSON.stringify(manifest, null, 2), 'utf-8');
|
|
20
|
+
}
|
|
21
|
+
export function sha256file(absPath) {
|
|
22
|
+
const content = readFileSync(absPath, 'utf-8');
|
|
23
|
+
return createHash('sha256').update(content).digest('hex');
|
|
24
|
+
}
|
|
25
|
+
export function buildManifest(runtime, files, projectRoot, forgeVersion, timestamp) {
|
|
26
|
+
const fileEntries = {};
|
|
27
|
+
for (const file of files) {
|
|
28
|
+
const absPath = join(projectRoot, file);
|
|
29
|
+
if (existsSync(absPath)) {
|
|
30
|
+
fileEntries[file] = { sha256: sha256file(absPath), installedAt: timestamp };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return { forgeVersion, runtime, installedAt: timestamp, files: fileEntries };
|
|
34
|
+
}
|
|
35
|
+
export function checkOutdated(projectRoot, manifest) {
|
|
36
|
+
const outdated = [];
|
|
37
|
+
for (const [file, entry] of Object.entries(manifest.files)) {
|
|
38
|
+
const absPath = join(projectRoot, file);
|
|
39
|
+
if (!existsSync(absPath)) {
|
|
40
|
+
outdated.push(file + ' (eliminado)');
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (sha256file(absPath) !== entry.sha256)
|
|
44
|
+
outdated.push(file);
|
|
45
|
+
}
|
|
46
|
+
return outdated;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lib/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AASpC,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAkB,CAAC;IAAC,CAAC;IACxE,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,QAAuB;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC9C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,KAAe,EACf,WAAmB,EACnB,YAAoB,EACpB,SAAiB;IAEjB,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,QAAuB;IACxE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/lib/wizard.d.ts
CHANGED
|
@@ -9,9 +9,10 @@ export interface WizardResult {
|
|
|
9
9
|
database?: string;
|
|
10
10
|
orm?: string;
|
|
11
11
|
packageManager?: string;
|
|
12
|
-
testing
|
|
13
|
-
profiles
|
|
12
|
+
testing: string[];
|
|
13
|
+
profiles: string[];
|
|
14
14
|
runtime: string;
|
|
15
|
+
detected: boolean;
|
|
15
16
|
}
|
|
16
17
|
export declare function runWizard(): Promise<WizardResult | null>;
|
|
17
18
|
//# sourceMappingURL=wizard.d.ts.map
|
package/dist/lib/wizard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/lib/wizard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/lib/wizard.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAyFD,wBAAsB,SAAS,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAsK9D"}
|
package/dist/lib/wizard.js
CHANGED
|
@@ -1,162 +1,231 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
console.log(`\n${question}`);
|
|
17
|
-
console.log(choiceStr);
|
|
18
|
-
rl.question(`Elegir [${defIdx}]: `, answer => {
|
|
19
|
-
const n = parseInt(answer.trim(), 10);
|
|
20
|
-
if (n >= 1 && n <= choices.length)
|
|
21
|
-
resolve(choices[n - 1]);
|
|
22
|
-
else
|
|
23
|
-
resolve(choices[defIdx - 1]);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
function askMulti(question, choices) {
|
|
28
|
-
const choiceStr = choices.map((c, i) => ` ${i + 1}) ${c}`).join('\n');
|
|
29
|
-
return new Promise(resolve => {
|
|
30
|
-
console.log(`\n${question} (números separados por coma, ej: 1,3)`);
|
|
31
|
-
console.log(choiceStr);
|
|
32
|
-
rl.question('Elegir: ', answer => {
|
|
33
|
-
const selected = answer.trim().split(',')
|
|
34
|
-
.map(s => parseInt(s.trim(), 10) - 1)
|
|
35
|
-
.filter(i => i >= 0 && i < choices.length)
|
|
36
|
-
.map(i => choices[i]);
|
|
37
|
-
resolve(selected);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
const BACKEND_BY_LANGUAGE = {
|
|
42
|
-
typescript: ['hono', 'express', 'nestjs', 'none'],
|
|
43
|
-
python: ['fastapi', 'django', 'none'],
|
|
44
|
-
ruby: ['rails', 'none'],
|
|
45
|
-
go: ['go-gin', 'none'],
|
|
46
|
-
php: ['laravel', 'none'],
|
|
1
|
+
import * as p from '@clack/prompts';
|
|
2
|
+
import { detectStack } from './detect.js';
|
|
3
|
+
// ─── Options tables ──────────────────────────────────────────────────────────
|
|
4
|
+
const BACKENDS = {
|
|
5
|
+
typescript: [
|
|
6
|
+
{ value: 'hono', label: 'Hono', hint: 'edge-ready, ultraligero' },
|
|
7
|
+
{ value: 'express', label: 'Express', hint: 'el clásico' },
|
|
8
|
+
{ value: 'nestjs', label: 'NestJS', hint: 'enterprise, opinionado' },
|
|
9
|
+
{ value: 'fastify', label: 'Fastify', hint: 'rápido, plugins' },
|
|
10
|
+
{ value: 'none', label: 'Ninguno' },
|
|
11
|
+
],
|
|
12
|
+
python: [{ value: 'fastapi', label: 'FastAPI', hint: 'async' }, { value: 'django', label: 'Django' }, { value: 'none', label: 'Ninguno' }],
|
|
13
|
+
ruby: [{ value: 'rails', label: 'Rails' }, { value: 'none', label: 'Ninguno' }],
|
|
14
|
+
go: [{ value: 'go-gin', label: 'Gin' }, { value: 'none', label: 'Ninguno' }],
|
|
15
|
+
php: [{ value: 'laravel', label: 'Laravel' }, { value: 'none', label: 'Ninguno' }],
|
|
47
16
|
};
|
|
48
|
-
const
|
|
49
|
-
typescript: [
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
17
|
+
const FRONTENDS = {
|
|
18
|
+
typescript: [
|
|
19
|
+
{ value: 'nextjs', label: 'Next.js', hint: 'fullstack React' },
|
|
20
|
+
{ value: 'astro', label: 'Astro', hint: 'content-first' },
|
|
21
|
+
{ value: 'nuxt', label: 'Nuxt', hint: 'Vue' },
|
|
22
|
+
{ value: 'sveltekit', label: 'SvelteKit', hint: 'Svelte' },
|
|
23
|
+
{ value: 'none', label: 'Ninguno' },
|
|
24
|
+
],
|
|
54
25
|
};
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
26
|
+
const ORMS = {
|
|
27
|
+
typescript: [
|
|
28
|
+
{ value: 'drizzle', label: 'Drizzle ORM', hint: 'ligero, type-safe' },
|
|
29
|
+
{ value: 'prisma', label: 'Prisma', hint: 'completo, migrations' },
|
|
30
|
+
{ value: 'typeorm', label: 'TypeORM' },
|
|
31
|
+
{ value: 'none', label: 'Ninguno' },
|
|
32
|
+
],
|
|
33
|
+
python: [{ value: 'sqlalchemy', label: 'SQLAlchemy' }, { value: 'none', label: 'Ninguno' }],
|
|
34
|
+
ruby: [{ value: 'active-record', label: 'Active Record' }, { value: 'none', label: 'Ninguno' }],
|
|
62
35
|
};
|
|
63
|
-
const
|
|
64
|
-
typescript: [
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
36
|
+
const PKG_MANAGERS = {
|
|
37
|
+
typescript: [
|
|
38
|
+
{ value: 'pnpm', label: 'pnpm', hint: 'recomendado — rápido y eficiente' },
|
|
39
|
+
{ value: 'npm', label: 'npm' },
|
|
40
|
+
{ value: 'yarn', label: 'yarn' },
|
|
41
|
+
{ value: 'bun', label: 'bun', hint: 'ultra-rápido' },
|
|
42
|
+
],
|
|
43
|
+
python: [{ value: 'pip', label: 'pip' }, { value: 'poetry', label: 'poetry' }],
|
|
44
|
+
ruby: [{ value: 'bundler', label: 'bundler' }],
|
|
45
|
+
go: [{ value: 'go', label: 'go modules' }],
|
|
46
|
+
php: [{ value: 'composer', label: 'composer' }],
|
|
69
47
|
};
|
|
70
|
-
const
|
|
71
|
-
typescript: [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
48
|
+
const TESTING_OPTS = {
|
|
49
|
+
typescript: [
|
|
50
|
+
{ value: 'vitest', label: 'Vitest', hint: 'unit/integration' },
|
|
51
|
+
{ value: 'jest', label: 'Jest' },
|
|
52
|
+
{ value: 'playwright', label: 'Playwright', hint: 'E2E' },
|
|
53
|
+
{ value: 'cypress', label: 'Cypress', hint: 'E2E' },
|
|
54
|
+
],
|
|
55
|
+
python: [{ value: 'pytest', label: 'pytest' }],
|
|
56
|
+
ruby: [{ value: 'rspec', label: 'RSpec' }],
|
|
57
|
+
php: [{ value: 'phpunit', label: 'PHPUnit' }],
|
|
76
58
|
};
|
|
77
|
-
const
|
|
78
|
-
hono:
|
|
79
|
-
nextjs:
|
|
80
|
-
astro:
|
|
81
|
-
fastapi:
|
|
82
|
-
rails:
|
|
83
|
-
laravel:
|
|
84
|
-
expo: ['expo'],
|
|
59
|
+
const PROFILE_MAP = {
|
|
60
|
+
hono: 'hono-drizzle',
|
|
61
|
+
nextjs: 'nextjs-admin',
|
|
62
|
+
astro: 'astro',
|
|
63
|
+
fastapi: 'fastapi',
|
|
64
|
+
rails: 'rails',
|
|
65
|
+
laravel: 'laravel',
|
|
85
66
|
};
|
|
86
|
-
const RUNTIME_OPTIONS = ['claude-code', 'opencode', 'codex', 'kiro'];
|
|
87
67
|
function toSlug(name) {
|
|
88
68
|
return name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
|
|
89
69
|
}
|
|
70
|
+
function cancel() {
|
|
71
|
+
p.cancel('Operación cancelada.');
|
|
72
|
+
process.exit(0);
|
|
73
|
+
}
|
|
74
|
+
function check(v) {
|
|
75
|
+
if (p.isCancel(v))
|
|
76
|
+
cancel();
|
|
77
|
+
return v;
|
|
78
|
+
}
|
|
79
|
+
// ─── Main wizard ─────────────────────────────────────────────────────────────
|
|
90
80
|
export async function runWizard() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
81
|
+
p.intro(' forge — Configuración de proyecto ');
|
|
82
|
+
// Auto-detect stack
|
|
83
|
+
const detected = detectStack(process.cwd());
|
|
84
|
+
const hasDetection = !!(detected.language || detected.backend || detected.packageManager);
|
|
85
|
+
if (hasDetection) {
|
|
86
|
+
const detectedItems = [
|
|
87
|
+
detected.language && `lenguaje: ${detected.language}`,
|
|
88
|
+
detected.backend && `backend: ${detected.backend}`,
|
|
89
|
+
detected.frontend && `frontend: ${detected.frontend}`,
|
|
90
|
+
detected.packageManager && `package manager: ${detected.packageManager}`,
|
|
91
|
+
detected.testing.length && `testing: ${detected.testing.join(', ')}`,
|
|
92
|
+
].filter(Boolean);
|
|
93
|
+
p.note(detectedItems.join('\n'), 'Stack detectado — pre-seleccionado abajo');
|
|
99
94
|
}
|
|
95
|
+
// ── Proyecto ──
|
|
96
|
+
const name = check(await p.text({
|
|
97
|
+
message: 'Nombre del proyecto',
|
|
98
|
+
placeholder: 'Mi Proyecto',
|
|
99
|
+
validate: (v) => (v ?? '').trim() ? undefined : 'El nombre es requerido',
|
|
100
|
+
}));
|
|
100
101
|
const slugDefault = toSlug(name);
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
102
|
+
const slugInput = check(await p.text({
|
|
103
|
+
message: 'Slug (URL-safe)',
|
|
104
|
+
placeholder: slugDefault,
|
|
105
|
+
defaultValue: slugDefault,
|
|
106
|
+
}));
|
|
107
|
+
const slug = slugInput || slugDefault;
|
|
108
|
+
const description = check(await p.text({
|
|
109
|
+
message: 'Descripción breve',
|
|
110
|
+
placeholder: 'Describe tu proyecto en una línea',
|
|
111
|
+
}));
|
|
112
|
+
// ── Tech stack ──
|
|
113
|
+
const language = check(await p.select({
|
|
114
|
+
message: 'Lenguaje principal',
|
|
115
|
+
initialValue: detected.language ?? 'typescript',
|
|
116
|
+
options: [
|
|
117
|
+
{ value: 'typescript', label: 'TypeScript / JavaScript', hint: 'recomendado' },
|
|
118
|
+
{ value: 'python', label: 'Python' },
|
|
119
|
+
{ value: 'ruby', label: 'Ruby' },
|
|
120
|
+
{ value: 'go', label: 'Go' },
|
|
121
|
+
{ value: 'php', label: 'PHP' },
|
|
122
|
+
],
|
|
123
|
+
}));
|
|
124
|
+
const mode = check(await p.select({
|
|
125
|
+
message: 'Modo del proyecto',
|
|
126
|
+
initialValue: 'standard',
|
|
127
|
+
options: [
|
|
128
|
+
{ value: 'startup', label: 'startup', hint: 'mínimo viable, equipo pequeño' },
|
|
129
|
+
{ value: 'standard', label: 'standard', hint: 'CI/CD, code review, testing' },
|
|
130
|
+
{ value: 'enterprise', label: 'enterprise', hint: 'compliance, auditoría, multi-equipo' },
|
|
131
|
+
],
|
|
132
|
+
}));
|
|
133
|
+
const backendOpts = BACKENDS[language] ?? [{ value: 'none', label: 'Ninguno' }];
|
|
134
|
+
const backendVal = check(await p.select({
|
|
135
|
+
message: 'Framework backend',
|
|
136
|
+
initialValue: detected.backend ?? backendOpts[0].value,
|
|
137
|
+
options: backendOpts,
|
|
138
|
+
}));
|
|
139
|
+
const backend = backendVal === 'none' ? undefined : backendVal;
|
|
140
|
+
const frontendOpts = FRONTENDS[language];
|
|
141
|
+
let frontend;
|
|
142
|
+
if (frontendOpts) {
|
|
143
|
+
const v = check(await p.select({
|
|
144
|
+
message: 'Framework frontend',
|
|
145
|
+
initialValue: detected.frontend ?? 'none',
|
|
146
|
+
options: frontendOpts,
|
|
147
|
+
}));
|
|
148
|
+
frontend = v === 'none' ? undefined : v;
|
|
149
|
+
}
|
|
150
|
+
const dbVal = check(await p.select({
|
|
151
|
+
message: 'Base de datos',
|
|
152
|
+
initialValue: detected.database ?? 'postgresql',
|
|
153
|
+
options: [
|
|
154
|
+
{ value: 'postgresql', label: 'PostgreSQL', hint: 'recomendado' },
|
|
155
|
+
{ value: 'mysql', label: 'MySQL / MariaDB' },
|
|
156
|
+
{ value: 'sqlite', label: 'SQLite', hint: 'dev/embedded' },
|
|
157
|
+
{ value: 'none', label: 'Ninguna' },
|
|
158
|
+
],
|
|
159
|
+
}));
|
|
160
|
+
const database = dbVal === 'none' ? undefined : dbVal;
|
|
118
161
|
let orm;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
orm
|
|
124
|
-
|
|
162
|
+
const ormOpts = ORMS[language];
|
|
163
|
+
if (database && ormOpts) {
|
|
164
|
+
const v = check(await p.select({
|
|
165
|
+
message: 'ORM / query builder',
|
|
166
|
+
initialValue: detected.orm ?? ormOpts[0].value,
|
|
167
|
+
options: ormOpts,
|
|
168
|
+
}));
|
|
169
|
+
orm = v === 'none' ? undefined : v;
|
|
170
|
+
}
|
|
171
|
+
const pmOpts = PKG_MANAGERS[language];
|
|
172
|
+
let packageManager;
|
|
173
|
+
if (pmOpts) {
|
|
174
|
+
const v = check(await p.select({
|
|
175
|
+
message: 'Package manager',
|
|
176
|
+
initialValue: detected.packageManager ?? pmOpts[0].value,
|
|
177
|
+
options: pmOpts,
|
|
178
|
+
}));
|
|
179
|
+
packageManager = v === 'none' ? undefined : v;
|
|
180
|
+
}
|
|
181
|
+
const testOpts = TESTING_OPTS[language];
|
|
182
|
+
let testing = detected.testing;
|
|
183
|
+
if (testOpts) {
|
|
184
|
+
const v = check(await p.multiselect({
|
|
185
|
+
message: 'Frameworks de testing',
|
|
186
|
+
initialValues: detected.testing,
|
|
187
|
+
options: testOpts,
|
|
188
|
+
required: false,
|
|
189
|
+
}));
|
|
190
|
+
testing = v;
|
|
125
191
|
}
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
192
|
+
const runtime = check(await p.select({
|
|
193
|
+
message: 'Runtime de IA',
|
|
194
|
+
initialValue: 'claude-code',
|
|
195
|
+
options: [
|
|
196
|
+
{ value: 'claude-code', label: 'Claude Code', hint: 'recomendado' },
|
|
197
|
+
{ value: 'opencode', label: 'OpenCode' },
|
|
198
|
+
{ value: 'codex', label: 'Codex CLI' },
|
|
199
|
+
{ value: 'kiro', label: 'Kiro IDE' },
|
|
200
|
+
],
|
|
201
|
+
}));
|
|
202
|
+
// ── Confirmación ──
|
|
203
|
+
const summary = [
|
|
204
|
+
` Nombre: ${name}`,
|
|
205
|
+
` Lenguaje: ${language} Modo: ${mode}`,
|
|
206
|
+
backend ? ` Backend: ${backend}` : '',
|
|
207
|
+
frontend ? ` Frontend: ${frontend}` : '',
|
|
208
|
+
database ? ` Base de datos: ${database}${orm ? ' + ' + orm : ''}` : '',
|
|
209
|
+
testing.length ? ` Testing: ${testing.join(', ')}` : '',
|
|
210
|
+
` Runtime: ${runtime}`,
|
|
211
|
+
].filter(Boolean).join('\n');
|
|
212
|
+
p.note(summary, 'Configuración seleccionada');
|
|
213
|
+
const confirmed = check(await p.confirm({ message: '¿Instalar con esta configuración?' }));
|
|
214
|
+
if (!confirmed) {
|
|
215
|
+
p.cancel('Cancelado.');
|
|
216
|
+
return null;
|
|
135
217
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
218
|
+
p.outro('Configuración lista. Instalando...');
|
|
219
|
+
// Auto-detect profiles
|
|
220
|
+
const profiles = [];
|
|
221
|
+
for (const key of [backend, frontend]) {
|
|
222
|
+
if (key && PROFILE_MAP[key])
|
|
223
|
+
profiles.push(PROFILE_MAP[key]);
|
|
141
224
|
}
|
|
142
|
-
const runtime = await askChoice('Runtime de IA principal:', RUNTIME_OPTIONS, 'claude-code');
|
|
143
|
-
rl.close();
|
|
144
|
-
// Build profiles list from suggestions
|
|
145
|
-
const profiles = [...new Set(suggestedProfiles)];
|
|
146
225
|
return {
|
|
147
|
-
name,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
language,
|
|
151
|
-
mode: modeValue,
|
|
152
|
-
backend,
|
|
153
|
-
frontend,
|
|
154
|
-
database,
|
|
155
|
-
orm,
|
|
156
|
-
packageManager,
|
|
157
|
-
testing,
|
|
158
|
-
profiles,
|
|
159
|
-
runtime,
|
|
226
|
+
name, slug, description: description || '', language, mode,
|
|
227
|
+
backend, frontend, database, orm, packageManager, testing,
|
|
228
|
+
profiles: [...new Set(profiles)], runtime, detected: hasDetection,
|
|
160
229
|
};
|
|
161
230
|
}
|
|
162
231
|
//# sourceMappingURL=wizard.js.map
|
package/dist/lib/wizard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/lib/wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/lib/wizard.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/box.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../src/ui/box.ts"],"names":[],"mappings":"AAEA,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAY1D"}
|