mycontext-cli 2.0.2 → 2.0.3
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/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.js +69 -0
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -1
- package/dist/agents/implementations/PromptConstructorAgent.js +23 -0
- package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -1
- package/dist/cli.js +11 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/health-check.d.ts +28 -0
- package/dist/commands/health-check.d.ts.map +1 -0
- package/dist/commands/health-check.js +271 -0
- package/dist/commands/health-check.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/utils/NextJSProjectGenerator.d.ts +70 -0
- package/dist/utils/NextJSProjectGenerator.d.ts.map +1 -0
- package/dist/utils/NextJSProjectGenerator.js +811 -0
- package/dist/utils/NextJSProjectGenerator.js.map +1 -0
- package/dist/utils/NextJSProjectValidator.d.ts +103 -0
- package/dist/utils/NextJSProjectValidator.d.ts.map +1 -0
- package/dist/utils/NextJSProjectValidator.js +759 -0
- package/dist/utils/NextJSProjectValidator.js.map +1 -0
- package/dist/utils/PreCommandValidator.d.ts +77 -0
- package/dist/utils/PreCommandValidator.d.ts.map +1 -0
- package/dist/utils/PreCommandValidator.js +251 -0
- package/dist/utils/PreCommandValidator.js.map +1 -0
- package/dist/utils/ProjectHealthMonitor.d.ts +131 -0
- package/dist/utils/ProjectHealthMonitor.d.ts.map +1 -0
- package/dist/utils/ProjectHealthMonitor.js +454 -0
- package/dist/utils/ProjectHealthMonitor.js.map +1 -0
- package/dist/utils/ProjectInitializationSafeguards.d.ts +81 -0
- package/dist/utils/ProjectInitializationSafeguards.d.ts.map +1 -0
- package/dist/utils/ProjectInitializationSafeguards.js +620 -0
- package/dist/utils/ProjectInitializationSafeguards.js.map +1 -0
- package/dist/utils/ProjectStructureRepair.d.ts +110 -0
- package/dist/utils/ProjectStructureRepair.d.ts.map +1 -0
- package/dist/utils/ProjectStructureRepair.js +785 -0
- package/dist/utils/ProjectStructureRepair.js.map +1 -0
- package/dist/utils/ProjectStructureValidator.d.ts +128 -0
- package/dist/utils/ProjectStructureValidator.d.ts.map +1 -0
- package/dist/utils/ProjectStructureValidator.js +662 -0
- package/dist/utils/ProjectStructureValidator.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../../src/commands/health-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAA4B;;IAM7C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAoB1B,GAAG,CAAC,OAAO,EAAE;QACjB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDjB,OAAO,CAAC,cAAc;YAoGR,aAAa;YAgCb,cAAc;CAqB7B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS7E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB9C"}
|
|
@@ -0,0 +1,271 @@
|
|
|
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.HealthCheckCommand = void 0;
|
|
40
|
+
exports.quickHealthCheck = quickHealthCheck;
|
|
41
|
+
exports.healthCheckWithFix = healthCheckWithFix;
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const ProjectStructureValidator_1 = require("../utils/ProjectStructureValidator");
|
|
44
|
+
const PreCommandValidator_1 = require("../utils/PreCommandValidator");
|
|
45
|
+
const fs = __importStar(require("fs-extra"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
class HealthCheckCommand {
|
|
48
|
+
constructor() {
|
|
49
|
+
this.validator = new ProjectStructureValidator_1.ProjectStructureValidator();
|
|
50
|
+
}
|
|
51
|
+
register(program) {
|
|
52
|
+
const healthCheckCommand = program
|
|
53
|
+
.command("health-check")
|
|
54
|
+
.description("Check and fix project structure issues")
|
|
55
|
+
.option("-f, --fix", "Automatically fix issues where possible")
|
|
56
|
+
.option("-r, --report", "Generate detailed health report")
|
|
57
|
+
.option("-s, --strict", "Enable strict mode (block commands on issues)")
|
|
58
|
+
.option("-o, --output <file>", "Output report to file")
|
|
59
|
+
.option("--no-auto-fix", "Disable automatic fixing")
|
|
60
|
+
.action(async (options) => {
|
|
61
|
+
await this.run(options);
|
|
62
|
+
});
|
|
63
|
+
// Add validation hook to this command itself
|
|
64
|
+
PreCommandValidator_1.PreCommandValidator.addValidationHook(healthCheckCommand, {
|
|
65
|
+
autoFix: false,
|
|
66
|
+
strict: false,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
async run(options) {
|
|
70
|
+
console.log(chalk_1.default.blue("🏥 MyContext Project Health Check"));
|
|
71
|
+
console.log(chalk_1.default.blue("================================\n"));
|
|
72
|
+
try {
|
|
73
|
+
// Run validation
|
|
74
|
+
const report = await this.validator.validate();
|
|
75
|
+
// Display results
|
|
76
|
+
this.displayResults(report, options);
|
|
77
|
+
// Auto-fix if requested
|
|
78
|
+
if (options.fix || options.autoFix !== false) {
|
|
79
|
+
await this.handleAutoFix(report, options);
|
|
80
|
+
}
|
|
81
|
+
// Generate report if requested
|
|
82
|
+
if (options.report || options.output) {
|
|
83
|
+
await this.generateReport(report, options);
|
|
84
|
+
}
|
|
85
|
+
// Set global validation settings
|
|
86
|
+
if (options.strict !== undefined) {
|
|
87
|
+
const { GlobalValidationSettings } = await Promise.resolve().then(() => __importStar(require("../utils/PreCommandValidator")));
|
|
88
|
+
const settings = GlobalValidationSettings.getInstance();
|
|
89
|
+
settings.setStrictMode(options.strict);
|
|
90
|
+
console.log(chalk_1.default.blue(`\n🔧 Global strict mode: ${options.strict ? "enabled" : "disabled"}`));
|
|
91
|
+
}
|
|
92
|
+
// Exit with appropriate code
|
|
93
|
+
if (!report.isValid && options.strict) {
|
|
94
|
+
console.log(chalk_1.default.red("\n❌ Health check failed in strict mode"));
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
else if (!report.isValid) {
|
|
98
|
+
console.log(chalk_1.default.yellow("\n⚠️ Health check completed with warnings"));
|
|
99
|
+
process.exit(0);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.log(chalk_1.default.green("\n✅ Health check passed"));
|
|
103
|
+
process.exit(0);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
console.log(chalk_1.default.red(`❌ Health check failed: ${error}`));
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
displayResults(report, options) {
|
|
112
|
+
console.log(chalk_1.default.blue("📊 Project Metrics:"));
|
|
113
|
+
console.log(` Package files: ${report.metrics.packageJsonCount}`);
|
|
114
|
+
console.log(` Node modules: ${report.metrics.nodeModulesCount}`);
|
|
115
|
+
console.log(` Lock files: ${report.metrics.lockFileCount}`);
|
|
116
|
+
console.log(` TypeScript configs: ${report.metrics.tsConfigCount}`);
|
|
117
|
+
console.log(` Build configs: ${report.metrics.buildConfigCount}`);
|
|
118
|
+
console.log(` Project depth: ${report.metrics.projectDepth}`);
|
|
119
|
+
// Next.js specific metrics
|
|
120
|
+
if (report.nextjsCompliant !== undefined) {
|
|
121
|
+
console.log(` Next.js App Router: ${report.nextjsCompliant ? chalk_1.default.green("✅ Compliant") : chalk_1.default.red("❌ Issues")}`);
|
|
122
|
+
}
|
|
123
|
+
if (report.shadcnCompliant !== undefined) {
|
|
124
|
+
console.log(` shadcn/ui Integration: ${report.shadcnCompliant ? chalk_1.default.green("✅ Compliant") : chalk_1.default.red("❌ Issues")}`);
|
|
125
|
+
}
|
|
126
|
+
console.log();
|
|
127
|
+
console.log(chalk_1.default.blue("🏥 Health Status:"));
|
|
128
|
+
if (report.isValid) {
|
|
129
|
+
console.log(chalk_1.default.green(" ✅ HEALTHY - No issues found"));
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
console.log(chalk_1.default.red(` ❌ NEEDS ATTENTION - ${report.issues.length} issues found`));
|
|
133
|
+
}
|
|
134
|
+
if (report.issues.length > 0) {
|
|
135
|
+
console.log(chalk_1.default.blue("\n🚨 Issues Found:"));
|
|
136
|
+
const criticalIssues = report.issues.filter((issue) => issue.severity === "critical");
|
|
137
|
+
const highIssues = report.issues.filter((issue) => issue.severity === "high");
|
|
138
|
+
const mediumIssues = report.issues.filter((issue) => issue.severity === "medium");
|
|
139
|
+
const lowIssues = report.issues.filter((issue) => issue.severity === "low");
|
|
140
|
+
if (criticalIssues.length > 0) {
|
|
141
|
+
console.log(chalk_1.default.red("\n Critical Issues:"));
|
|
142
|
+
criticalIssues.forEach((issue) => {
|
|
143
|
+
console.log(chalk_1.default.red(` ❌ ${issue.message}`));
|
|
144
|
+
if (issue.file)
|
|
145
|
+
console.log(chalk_1.default.gray(` File: ${issue.file}`));
|
|
146
|
+
if (issue.fix)
|
|
147
|
+
console.log(chalk_1.default.gray(` Fix: ${issue.fix}`));
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
if (highIssues.length > 0) {
|
|
151
|
+
console.log(chalk_1.default.red("\n High Priority Issues:"));
|
|
152
|
+
highIssues.forEach((issue) => {
|
|
153
|
+
console.log(chalk_1.default.red(` ⚠️ ${issue.message}`));
|
|
154
|
+
if (issue.file)
|
|
155
|
+
console.log(chalk_1.default.gray(` File: ${issue.file}`));
|
|
156
|
+
if (issue.fix)
|
|
157
|
+
console.log(chalk_1.default.gray(` Fix: ${issue.fix}`));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
if (mediumIssues.length > 0) {
|
|
161
|
+
console.log(chalk_1.default.yellow("\n Medium Priority Issues:"));
|
|
162
|
+
mediumIssues.forEach((issue) => {
|
|
163
|
+
console.log(chalk_1.default.yellow(` ⚠️ ${issue.message}`));
|
|
164
|
+
if (issue.file)
|
|
165
|
+
console.log(chalk_1.default.gray(` File: ${issue.file}`));
|
|
166
|
+
if (issue.fix)
|
|
167
|
+
console.log(chalk_1.default.gray(` Fix: ${issue.fix}`));
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if (lowIssues.length > 0) {
|
|
171
|
+
console.log(chalk_1.default.blue("\n Low Priority Issues:"));
|
|
172
|
+
lowIssues.forEach((issue) => {
|
|
173
|
+
console.log(chalk_1.default.blue(` ℹ️ ${issue.message}`));
|
|
174
|
+
if (issue.file)
|
|
175
|
+
console.log(chalk_1.default.gray(` File: ${issue.file}`));
|
|
176
|
+
if (issue.fix)
|
|
177
|
+
console.log(chalk_1.default.gray(` Fix: ${issue.fix}`));
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (report.recommendations.length > 0) {
|
|
182
|
+
console.log(chalk_1.default.blue("\n💡 Recommendations:"));
|
|
183
|
+
report.recommendations.forEach((rec) => {
|
|
184
|
+
console.log(chalk_1.default.blue(` • ${rec}`));
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
console.log(chalk_1.default.blue(`\n🔧 Auto-fix available: ${report.autoFixable ? "Yes" : "No"}`));
|
|
188
|
+
}
|
|
189
|
+
async handleAutoFix(report, options) {
|
|
190
|
+
if (!report.autoFixable) {
|
|
191
|
+
console.log(chalk_1.default.yellow("\n⚠️ No auto-fixable issues found"));
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
console.log(chalk_1.default.blue("\n🔧 Attempting to auto-fix issues..."));
|
|
195
|
+
try {
|
|
196
|
+
const fixResult = await this.validator.autoFix();
|
|
197
|
+
if (fixResult.fixed > 0) {
|
|
198
|
+
console.log(chalk_1.default.green(`✅ Successfully fixed ${fixResult.fixed} issues`));
|
|
199
|
+
}
|
|
200
|
+
if (fixResult.failed > 0) {
|
|
201
|
+
console.log(chalk_1.default.red(`❌ Failed to fix ${fixResult.failed} issues:`));
|
|
202
|
+
fixResult.errors.forEach((error) => {
|
|
203
|
+
console.log(chalk_1.default.red(` ${error}`));
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
if (fixResult.fixed === 0 && fixResult.failed === 0) {
|
|
207
|
+
console.log(chalk_1.default.yellow("ℹ️ No issues were auto-fixable"));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
console.log(chalk_1.default.red(`❌ Auto-fix failed: ${error}`));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
async generateReport(report, options) {
|
|
215
|
+
try {
|
|
216
|
+
const reportContent = await this.validator.generateHealthReport();
|
|
217
|
+
if (options.output) {
|
|
218
|
+
const outputPath = path.resolve(options.output);
|
|
219
|
+
await fs.writeFile(outputPath, reportContent);
|
|
220
|
+
console.log(chalk_1.default.green(`\n📄 Health report saved to: ${outputPath}`));
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
224
|
+
const reportPath = path.join(process.cwd(), `health-report-${timestamp}.md`);
|
|
225
|
+
await fs.writeFile(reportPath, reportContent);
|
|
226
|
+
console.log(chalk_1.default.green(`\n📄 Health report saved to: ${reportPath}`));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
console.log(chalk_1.default.red(`❌ Failed to generate report: ${error}`));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.HealthCheckCommand = HealthCheckCommand;
|
|
235
|
+
/**
|
|
236
|
+
* Quick health check function for programmatic use
|
|
237
|
+
*/
|
|
238
|
+
async function quickHealthCheck(projectRoot) {
|
|
239
|
+
try {
|
|
240
|
+
const validator = new ProjectStructureValidator_1.ProjectStructureValidator(projectRoot);
|
|
241
|
+
const report = await validator.validate();
|
|
242
|
+
return report.isValid;
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
console.error(`Health check failed: ${error}`);
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Health check with auto-fix
|
|
251
|
+
*/
|
|
252
|
+
async function healthCheckWithFix(projectRoot) {
|
|
253
|
+
try {
|
|
254
|
+
const validator = new ProjectStructureValidator_1.ProjectStructureValidator(projectRoot);
|
|
255
|
+
const report = await validator.validate();
|
|
256
|
+
if (report.isValid) {
|
|
257
|
+
return { healthy: true, fixed: 0 };
|
|
258
|
+
}
|
|
259
|
+
if (report.autoFixable) {
|
|
260
|
+
const fixResult = await validator.autoFix();
|
|
261
|
+
const newReport = await validator.validate();
|
|
262
|
+
return { healthy: newReport.isValid, fixed: fixResult.fixed };
|
|
263
|
+
}
|
|
264
|
+
return { healthy: false, fixed: 0 };
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
console.error(`Health check with fix failed: ${error}`);
|
|
268
|
+
return { healthy: false, fixed: 0 };
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=health-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/commands/health-check.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mycontext-cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"description": "MyContext CLI - AI-powered full-stack application generator with complete architecture generation, server actions, Next.js 15 App Router, and self-documenting components",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export interface NextJSProjectOptions {
|
|
2
|
+
projectName: string;
|
|
3
|
+
projectPath: string;
|
|
4
|
+
withShadcn: boolean;
|
|
5
|
+
withTailwind: boolean;
|
|
6
|
+
withTypeScript: boolean;
|
|
7
|
+
withESLint: boolean;
|
|
8
|
+
withAppRouter: boolean;
|
|
9
|
+
withLayouts: boolean;
|
|
10
|
+
withComponents: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface GeneratedFile {
|
|
13
|
+
path: string;
|
|
14
|
+
content: string;
|
|
15
|
+
type: "file" | "directory";
|
|
16
|
+
}
|
|
17
|
+
export declare class NextJSProjectGenerator {
|
|
18
|
+
private projectRoot;
|
|
19
|
+
private options;
|
|
20
|
+
constructor(options: NextJSProjectOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Generate complete Next.js project structure
|
|
23
|
+
*/
|
|
24
|
+
generateProject(): Promise<GeneratedFile[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Create basic project structure
|
|
27
|
+
*/
|
|
28
|
+
private createBasicStructure;
|
|
29
|
+
/**
|
|
30
|
+
* Generate package.json
|
|
31
|
+
*/
|
|
32
|
+
private generatePackageJson;
|
|
33
|
+
/**
|
|
34
|
+
* Generate Next.js configuration
|
|
35
|
+
*/
|
|
36
|
+
private generateNextJSConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Generate TypeScript configuration
|
|
39
|
+
*/
|
|
40
|
+
private generateTypeScriptConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Generate Tailwind CSS configuration
|
|
43
|
+
*/
|
|
44
|
+
private generateTailwindConfig;
|
|
45
|
+
/**
|
|
46
|
+
* Generate App Router structure
|
|
47
|
+
*/
|
|
48
|
+
private generateAppRouterStructure;
|
|
49
|
+
/**
|
|
50
|
+
* Generate shadcn/ui configuration
|
|
51
|
+
*/
|
|
52
|
+
private generateShadcnConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Generate component structure
|
|
55
|
+
*/
|
|
56
|
+
private generateComponentStructure;
|
|
57
|
+
/**
|
|
58
|
+
* Generate layout structure
|
|
59
|
+
*/
|
|
60
|
+
private generateLayoutStructure;
|
|
61
|
+
/**
|
|
62
|
+
* Generate utility files
|
|
63
|
+
*/
|
|
64
|
+
private generateUtilityFiles;
|
|
65
|
+
/**
|
|
66
|
+
* Generate .gitignore content
|
|
67
|
+
*/
|
|
68
|
+
private generateGitignoreContent;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=NextJSProjectGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NextJSProjectGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/NextJSProjectGenerator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,EAAE,oBAAoB;IAKzC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA6DjD;;OAEG;YACW,oBAAoB;IAwClC;;OAEG;YACW,mBAAmB;IAsDjC;;OAEG;YACW,oBAAoB;IAkClC;;OAEG;YACW,wBAAwB;IA6CtC;;OAEG;YACW,sBAAsB;IAyGpC;;OAEG;YACW,0BAA0B;IA0JxC;;OAEG;YACW,oBAAoB;IAmClC;;OAEG;YACW,0BAA0B;IAqFxC;;OAEG;YACW,uBAAuB;IA0ErC;;OAEG;YACW,oBAAoB;IA2ClC;;OAEG;IACH,OAAO,CAAC,wBAAwB;CA0GjC"}
|