popeye-cli 1.1.0 → 1.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/.env.example +24 -1
- package/CONTRIBUTING.md +275 -0
- package/OPEN_SOURCE_MANIFESTO.md +172 -0
- package/README.md +340 -27
- package/dist/adapters/claude.d.ts +5 -2
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +239 -19
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/grok.d.ts +73 -0
- package/dist/adapters/grok.d.ts.map +1 -0
- package/dist/adapters/grok.js +430 -0
- package/dist/adapters/grok.js.map +1 -0
- package/dist/adapters/openai.d.ts +1 -1
- package/dist/adapters/openai.d.ts.map +1 -1
- package/dist/adapters/openai.js +6 -1
- package/dist/adapters/openai.js.map +1 -1
- package/dist/auth/grok.d.ts +73 -0
- package/dist/auth/grok.d.ts.map +1 -0
- package/dist/auth/grok.js +211 -0
- package/dist/auth/grok.js.map +1 -0
- package/dist/auth/index.d.ts +9 -6
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +23 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +79 -8
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +15 -4
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +374 -35
- package/dist/cli/interactive.js.map +1 -1
- package/dist/config/defaults.d.ts +3 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +9 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +16 -3
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +27 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +24 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/generators/fullstack.d.ts +32 -0
- package/dist/generators/fullstack.d.ts.map +1 -0
- package/dist/generators/fullstack.js +497 -0
- package/dist/generators/fullstack.js.map +1 -0
- package/dist/generators/index.d.ts +4 -3
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +15 -1
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/python.d.ts +17 -1
- package/dist/generators/python.d.ts.map +1 -1
- package/dist/generators/python.js +34 -21
- package/dist/generators/python.js.map +1 -1
- package/dist/generators/templates/fullstack.d.ts +113 -0
- package/dist/generators/templates/fullstack.d.ts.map +1 -0
- package/dist/generators/templates/fullstack.js +1004 -0
- package/dist/generators/templates/fullstack.js.map +1 -0
- package/dist/generators/typescript.d.ts +19 -1
- package/dist/generators/typescript.d.ts.map +1 -1
- package/dist/generators/typescript.js +37 -21
- package/dist/generators/typescript.js.map +1 -1
- package/dist/types/cli.d.ts +4 -0
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/cli.js.map +1 -1
- package/dist/types/consensus.d.ts +119 -2
- package/dist/types/consensus.d.ts.map +1 -1
- package/dist/types/consensus.js +12 -1
- package/dist/types/consensus.js.map +1 -1
- package/dist/types/project.d.ts +76 -0
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +1 -1
- package/dist/types/project.js.map +1 -1
- package/dist/types/workflow.d.ts +162 -16
- package/dist/types/workflow.d.ts.map +1 -1
- package/dist/types/workflow.js +24 -1
- package/dist/types/workflow.js.map +1 -1
- package/dist/workflow/consensus.d.ts +29 -3
- package/dist/workflow/consensus.d.ts.map +1 -1
- package/dist/workflow/consensus.js +334 -27
- package/dist/workflow/consensus.js.map +1 -1
- package/dist/workflow/milestone-workflow.js +2 -2
- package/dist/workflow/milestone-workflow.js.map +1 -1
- package/dist/workflow/plan-mode.d.ts +66 -2
- package/dist/workflow/plan-mode.d.ts.map +1 -1
- package/dist/workflow/plan-mode.js +187 -11
- package/dist/workflow/plan-mode.js.map +1 -1
- package/dist/workflow/plan-storage.d.ts +252 -8
- package/dist/workflow/plan-storage.d.ts.map +1 -1
- package/dist/workflow/plan-storage.js +580 -33
- package/dist/workflow/plan-storage.js.map +1 -1
- package/dist/workflow/project-verification.js +1 -1
- package/dist/workflow/project-verification.js.map +1 -1
- package/dist/workflow/task-workflow.d.ts.map +1 -1
- package/dist/workflow/task-workflow.js +4 -1
- package/dist/workflow/task-workflow.js.map +1 -1
- package/dist/workflow/test-runner.d.ts +8 -0
- package/dist/workflow/test-runner.d.ts.map +1 -1
- package/dist/workflow/test-runner.js +92 -0
- package/dist/workflow/test-runner.js.map +1 -1
- package/dist/workflow/workspace-manager.d.ts +342 -0
- package/dist/workflow/workspace-manager.d.ts.map +1 -0
- package/dist/workflow/workspace-manager.js +733 -0
- package/dist/workflow/workspace-manager.js.map +1 -0
- package/package.json +1 -1
- package/src/adapters/claude.ts +263 -24
- package/src/adapters/grok.ts +492 -0
- package/src/adapters/openai.ts +8 -2
- package/src/auth/grok.ts +255 -0
- package/src/auth/index.ts +27 -9
- package/src/cli/commands/auth.ts +89 -10
- package/src/cli/commands/create.ts +13 -4
- package/src/cli/interactive.ts +424 -34
- package/src/config/defaults.ts +9 -0
- package/src/config/index.ts +17 -3
- package/src/config/schema.ts +25 -3
- package/src/generators/fullstack.ts +551 -0
- package/src/generators/index.ts +25 -1
- package/src/generators/python.ts +65 -21
- package/src/generators/templates/fullstack.ts +1047 -0
- package/src/generators/typescript.ts +69 -21
- package/src/types/cli.ts +4 -0
- package/src/types/consensus.ts +135 -3
- package/src/types/project.ts +82 -1
- package/src/types/workflow.ts +56 -2
- package/src/workflow/consensus.ts +461 -31
- package/src/workflow/milestone-workflow.ts +2 -2
- package/src/workflow/plan-mode.ts +238 -10
- package/src/workflow/plan-storage.ts +835 -35
- package/src/workflow/project-verification.ts +1 -1
- package/src/workflow/task-workflow.ts +4 -1
- package/src/workflow/test-runner.ts +110 -0
- package/src/workflow/workspace-manager.ts +912 -0
package/dist/generators/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Project generators module
|
|
3
|
-
* Provides unified API for generating Python and
|
|
3
|
+
* Provides unified API for generating Python, TypeScript, and Fullstack projects
|
|
4
4
|
*/
|
|
5
5
|
import { generatePythonProject, validatePythonProject, addPythonModule, getPythonProjectFiles, } from './python.js';
|
|
6
6
|
import { generateTypeScriptProject, validateTypeScriptProject, addTypeScriptModule, getTypeScriptProjectFiles, } from './typescript.js';
|
|
7
|
+
import { generateFullstackProject, validateFullstackProject, getFullstackProjectFiles, } from './fullstack.js';
|
|
7
8
|
// Re-export (explicitly to avoid name conflicts)
|
|
8
9
|
export { generatePythonProject, validatePythonProject, addPythonModule, getPythonProjectFiles, } from './python.js';
|
|
9
10
|
export { generateTypeScriptProject, validateTypeScriptProject, addTypeScriptModule, getTypeScriptProjectFiles, addDependency, updateScripts, } from './typescript.js';
|
|
11
|
+
export { generateFullstackProject, validateFullstackProject, getFullstackProjectFiles, } from './fullstack.js';
|
|
10
12
|
export * from './templates/index.js';
|
|
11
13
|
/**
|
|
12
14
|
* Generate a project based on the specification
|
|
@@ -21,6 +23,8 @@ export async function generateProject(spec, outputDir) {
|
|
|
21
23
|
return generatePythonProject(spec, outputDir);
|
|
22
24
|
case 'typescript':
|
|
23
25
|
return generateTypeScriptProject(spec, outputDir);
|
|
26
|
+
case 'fullstack':
|
|
27
|
+
return generateFullstackProject(spec, outputDir);
|
|
24
28
|
default:
|
|
25
29
|
return {
|
|
26
30
|
success: false,
|
|
@@ -43,6 +47,8 @@ export async function validateProject(projectDir, language) {
|
|
|
43
47
|
return validatePythonProject(projectDir);
|
|
44
48
|
case 'typescript':
|
|
45
49
|
return validateTypeScriptProject(projectDir);
|
|
50
|
+
case 'fullstack':
|
|
51
|
+
return validateFullstackProject(projectDir);
|
|
46
52
|
default:
|
|
47
53
|
return {
|
|
48
54
|
valid: false,
|
|
@@ -81,6 +87,8 @@ export function getProjectFiles(projectName, language) {
|
|
|
81
87
|
return getPythonProjectFiles(projectName);
|
|
82
88
|
case 'typescript':
|
|
83
89
|
return getTypeScriptProjectFiles(projectName);
|
|
90
|
+
case 'fullstack':
|
|
91
|
+
return getFullstackProjectFiles(projectName);
|
|
84
92
|
default:
|
|
85
93
|
return [];
|
|
86
94
|
}
|
|
@@ -97,6 +105,8 @@ export function getTestCommand(language) {
|
|
|
97
105
|
return 'python -m pytest tests/ -v';
|
|
98
106
|
case 'typescript':
|
|
99
107
|
return 'npm test';
|
|
108
|
+
case 'fullstack':
|
|
109
|
+
return 'cd apps/backend && pytest && cd ../frontend && npm test';
|
|
100
110
|
default:
|
|
101
111
|
return 'echo "No test command configured"';
|
|
102
112
|
}
|
|
@@ -113,6 +123,8 @@ export function getBuildCommand(language) {
|
|
|
113
123
|
return 'python -m pip install -e .';
|
|
114
124
|
case 'typescript':
|
|
115
125
|
return 'npm run build';
|
|
126
|
+
case 'fullstack':
|
|
127
|
+
return 'cd apps/backend && pip install -e . && cd ../frontend && npm run build';
|
|
116
128
|
default:
|
|
117
129
|
return 'echo "No build command configured"';
|
|
118
130
|
}
|
|
@@ -129,6 +141,8 @@ export function getLintCommand(language) {
|
|
|
129
141
|
return 'ruff check src/ tests/';
|
|
130
142
|
case 'typescript':
|
|
131
143
|
return 'npm run lint';
|
|
144
|
+
case 'fullstack':
|
|
145
|
+
return 'cd apps/backend && ruff check . && cd ../frontend && npm run lint';
|
|
132
146
|
default:
|
|
133
147
|
return 'echo "No lint command configured"';
|
|
134
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,GAEtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,30 @@ export interface GenerationResult {
|
|
|
12
12
|
filesCreated: string[];
|
|
13
13
|
error?: string;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Python generator options for workspace/monorepo support
|
|
17
|
+
*/
|
|
18
|
+
export interface PythonGeneratorOptions {
|
|
19
|
+
/** Base directory for project (defaults to outputDir/projectName) */
|
|
20
|
+
baseDir?: string;
|
|
21
|
+
/** Override auto-derived package name */
|
|
22
|
+
packageName?: string;
|
|
23
|
+
/** Adjust paths for monorepo structure */
|
|
24
|
+
workspaceMode?: boolean;
|
|
25
|
+
/** Skip Docker files (fullstack uses root docker-compose) */
|
|
26
|
+
skipDocker?: boolean;
|
|
27
|
+
/** Skip README (fullstack has root README) */
|
|
28
|
+
skipReadme?: boolean;
|
|
29
|
+
}
|
|
15
30
|
/**
|
|
16
31
|
* Generate a complete Python project
|
|
17
32
|
*
|
|
18
33
|
* @param spec - Project specification
|
|
19
34
|
* @param outputDir - Output directory
|
|
35
|
+
* @param options - Generator options for workspace/monorepo support
|
|
20
36
|
* @returns Generation result
|
|
21
37
|
*/
|
|
22
|
-
export declare function generatePythonProject(spec: ProjectSpec, outputDir: string): Promise<GenerationResult>;
|
|
38
|
+
export declare function generatePythonProject(spec: ProjectSpec, outputDir: string, options?: PythonGeneratorOptions): Promise<GenerationResult>;
|
|
23
39
|
/**
|
|
24
40
|
* Get the list of files that would be generated
|
|
25
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/generators/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuBD
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/generators/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAuBD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAkI3B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBnE;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CAwBD;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA2EnB"}
|
|
@@ -28,20 +28,26 @@ function toPythonPackageName(name) {
|
|
|
28
28
|
*
|
|
29
29
|
* @param spec - Project specification
|
|
30
30
|
* @param outputDir - Output directory
|
|
31
|
+
* @param options - Generator options for workspace/monorepo support
|
|
31
32
|
* @returns Generation result
|
|
32
33
|
*/
|
|
33
|
-
export async function generatePythonProject(spec, outputDir) {
|
|
34
|
+
export async function generatePythonProject(spec, outputDir, options = {}) {
|
|
35
|
+
const { baseDir, packageName: customPackageName, workspaceMode = false, skipDocker = false, skipReadme = false, } = options;
|
|
34
36
|
const projectName = spec.name || 'my-project';
|
|
35
|
-
const packageName = toPythonPackageName(projectName);
|
|
36
|
-
|
|
37
|
+
const packageName = customPackageName || toPythonPackageName(projectName);
|
|
38
|
+
// In workspace mode with baseDir, use it directly; otherwise create subdirectory
|
|
39
|
+
const projectDir = baseDir || path.join(outputDir, projectName);
|
|
37
40
|
const filesCreated = [];
|
|
38
41
|
try {
|
|
39
42
|
// Create project directory structure
|
|
40
43
|
await ensureDir(projectDir);
|
|
41
44
|
await ensureDir(path.join(projectDir, 'src', packageName));
|
|
42
45
|
await ensureDir(path.join(projectDir, 'tests'));
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
// Only create data/docs dirs in standalone mode
|
|
47
|
+
if (!workspaceMode) {
|
|
48
|
+
await ensureDir(path.join(projectDir, 'data'));
|
|
49
|
+
await ensureDir(path.join(projectDir, 'docs'));
|
|
50
|
+
}
|
|
45
51
|
// Generate and write files
|
|
46
52
|
const files = [
|
|
47
53
|
// Root files
|
|
@@ -61,22 +67,10 @@ export async function generatePythonProject(spec, outputDir) {
|
|
|
61
67
|
path: path.join(projectDir, '.env.example'),
|
|
62
68
|
content: generateEnvExample(),
|
|
63
69
|
},
|
|
64
|
-
{
|
|
65
|
-
path: path.join(projectDir, 'README.md'),
|
|
66
|
-
content: generateReadme(projectName, spec.idea),
|
|
67
|
-
},
|
|
68
70
|
{
|
|
69
71
|
path: path.join(projectDir, 'Makefile'),
|
|
70
72
|
content: generateMakefile(projectName),
|
|
71
73
|
},
|
|
72
|
-
{
|
|
73
|
-
path: path.join(projectDir, 'Dockerfile'),
|
|
74
|
-
content: generateDockerfile(projectName),
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
path: path.join(projectDir, 'docker-compose.yml'),
|
|
78
|
-
content: generateDockerCompose(projectName),
|
|
79
|
-
},
|
|
80
74
|
// Source files
|
|
81
75
|
{
|
|
82
76
|
path: path.join(projectDir, 'src', packageName, '__init__.py'),
|
|
@@ -103,12 +97,31 @@ export async function generatePythonProject(spec, outputDir) {
|
|
|
103
97
|
path: path.join(projectDir, 'tests', 'test_main.py'),
|
|
104
98
|
content: generateTestMain(projectName),
|
|
105
99
|
},
|
|
106
|
-
|
|
107
|
-
|
|
100
|
+
];
|
|
101
|
+
// Add README if not skipped
|
|
102
|
+
if (!skipReadme) {
|
|
103
|
+
files.push({
|
|
104
|
+
path: path.join(projectDir, 'README.md'),
|
|
105
|
+
content: generateReadme(projectName, spec.idea),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
// Add Docker files if not skipped
|
|
109
|
+
if (!skipDocker) {
|
|
110
|
+
files.push({
|
|
111
|
+
path: path.join(projectDir, 'Dockerfile'),
|
|
112
|
+
content: generateDockerfile(projectName),
|
|
113
|
+
}, {
|
|
114
|
+
path: path.join(projectDir, 'docker-compose.yml'),
|
|
115
|
+
content: generateDockerCompose(projectName),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// Add data placeholder in standalone mode
|
|
119
|
+
if (!workspaceMode) {
|
|
120
|
+
files.push({
|
|
108
121
|
path: path.join(projectDir, 'data', '.gitkeep'),
|
|
109
122
|
content: '',
|
|
110
|
-
}
|
|
111
|
-
|
|
123
|
+
});
|
|
124
|
+
}
|
|
112
125
|
// Write all files
|
|
113
126
|
for (const file of files) {
|
|
114
127
|
await writeFile(file.path, file.content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/generators/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/generators/python.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fullstack project templates
|
|
3
|
+
* Provides template files for fullstack monorepo project generation
|
|
4
|
+
*/
|
|
5
|
+
import type { WorkspaceConfig } from '../../types/project.js';
|
|
6
|
+
/**
|
|
7
|
+
* Generate workspace.json content
|
|
8
|
+
*
|
|
9
|
+
* @param projectName - The project name
|
|
10
|
+
* @returns Workspace configuration object
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateWorkspaceConfig(projectName: string): WorkspaceConfig;
|
|
13
|
+
/**
|
|
14
|
+
* Generate workspace.json file content as string
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateWorkspaceJson(projectName: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Generate root docker-compose.yml for fullstack project
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateRootDockerCompose(projectName: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Generate root README.md for fullstack project
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateRootReadme(projectName: string, description?: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Generate root .gitignore for fullstack project
|
|
27
|
+
*/
|
|
28
|
+
export declare function generateRootGitignore(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Generate frontend-specific README for fullstack project
|
|
31
|
+
*/
|
|
32
|
+
export declare function generateFrontendReadme(projectName: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Generate backend-specific README for fullstack project
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateBackendReadme(projectName: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Generate UI spec placeholder for fullstack project
|
|
39
|
+
*/
|
|
40
|
+
export declare function generateUiSpec(projectName: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* Generate Vite config for React frontend
|
|
43
|
+
*/
|
|
44
|
+
export declare function generateViteConfigReact(): string;
|
|
45
|
+
/**
|
|
46
|
+
* Generate Tailwind config for frontend
|
|
47
|
+
*/
|
|
48
|
+
export declare function generateTailwindConfig(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Generate PostCSS config for frontend
|
|
51
|
+
*/
|
|
52
|
+
export declare function generatePostcssConfig(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Generate main CSS with Tailwind directives
|
|
55
|
+
*/
|
|
56
|
+
export declare function generateMainCss(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Generate React App.tsx
|
|
59
|
+
*/
|
|
60
|
+
export declare function generateAppTsx(projectName: string): string;
|
|
61
|
+
/**
|
|
62
|
+
* Generate React main.tsx entry point
|
|
63
|
+
*/
|
|
64
|
+
export declare function generateMainTsx(): string;
|
|
65
|
+
/**
|
|
66
|
+
* Generate index.html for React app
|
|
67
|
+
*/
|
|
68
|
+
export declare function generateIndexHtml(projectName: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* Generate frontend package.json for React + Vite
|
|
71
|
+
*/
|
|
72
|
+
export declare function generateFrontendPackageJson(projectName: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Generate frontend tsconfig.json for React
|
|
75
|
+
*/
|
|
76
|
+
export declare function generateFrontendTsconfig(): string;
|
|
77
|
+
/**
|
|
78
|
+
* Generate frontend tsconfig.node.json
|
|
79
|
+
*/
|
|
80
|
+
export declare function generateFrontendTsconfigNode(): string;
|
|
81
|
+
/**
|
|
82
|
+
* Generate frontend Dockerfile for React + nginx
|
|
83
|
+
*/
|
|
84
|
+
export declare function generateFrontendDockerfile(): string;
|
|
85
|
+
/**
|
|
86
|
+
* Generate nginx config for frontend
|
|
87
|
+
*/
|
|
88
|
+
export declare function generateNginxConfig(): string;
|
|
89
|
+
/**
|
|
90
|
+
* Generate frontend test file
|
|
91
|
+
*/
|
|
92
|
+
export declare function generateFrontendTest(projectName: string): string;
|
|
93
|
+
/**
|
|
94
|
+
* Generate vitest setup for React
|
|
95
|
+
*/
|
|
96
|
+
export declare function generateVitestSetup(): string;
|
|
97
|
+
/**
|
|
98
|
+
* Generate vitest config for React
|
|
99
|
+
*/
|
|
100
|
+
export declare function generateFrontendVitestConfig(): string;
|
|
101
|
+
/**
|
|
102
|
+
* Generate backend FastAPI main.py
|
|
103
|
+
*/
|
|
104
|
+
export declare function generateFastAPIMain(projectName: string): string;
|
|
105
|
+
/**
|
|
106
|
+
* Generate backend Dockerfile for FastAPI
|
|
107
|
+
*/
|
|
108
|
+
export declare function generateBackendDockerfile(_projectName: string): string;
|
|
109
|
+
/**
|
|
110
|
+
* Generate backend requirements.txt for FastAPI
|
|
111
|
+
*/
|
|
112
|
+
export declare function generateFastAPIRequirements(): string;
|
|
113
|
+
//# sourceMappingURL=fullstack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fullstack.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/fullstack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAmD5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAyDrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CA6IpF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAoD9C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAoDlE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6DjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA4B1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA4BhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA4B/C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAQ9C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAUxC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAkE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAYxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAe7D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA0CvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA6BjD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAgBrD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAkCnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA6B5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAkBrD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgE/D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CA+BtE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAapD"}
|