devcache-hub 0.1.3 → 0.3.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/dist/analyzers/ArchitectureAnalyzer.d.ts +17 -0
- package/dist/analyzers/ArchitectureAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/ArchitectureAnalyzer.js +217 -0
- package/dist/analyzers/ArchitectureAnalyzer.js.map +1 -0
- package/dist/analyzers/FeaturesAnalyzer.d.ts +18 -0
- package/dist/analyzers/FeaturesAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/FeaturesAnalyzer.js +258 -0
- package/dist/analyzers/FeaturesAnalyzer.js.map +1 -0
- package/dist/analyzers/ImpactAnalyzer.d.ts +16 -0
- package/dist/analyzers/ImpactAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/ImpactAnalyzer.js +165 -0
- package/dist/analyzers/ImpactAnalyzer.js.map +1 -0
- package/dist/analyzers/ProjectAnalyzer.d.ts +14 -0
- package/dist/analyzers/ProjectAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/ProjectAnalyzer.js +142 -0
- package/dist/analyzers/ProjectAnalyzer.js.map +1 -0
- package/dist/analyzers/StackAnalyzer.d.ts +28 -0
- package/dist/analyzers/StackAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/StackAnalyzer.js +320 -0
- package/dist/analyzers/StackAnalyzer.js.map +1 -0
- package/dist/analyzers/base/BaseAnalyzer.d.ts +39 -0
- package/dist/analyzers/base/BaseAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/base/BaseAnalyzer.js +64 -0
- package/dist/analyzers/base/BaseAnalyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +7 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +23 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +32 -19
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +89 -19
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +81 -10
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/orchestrator/FileSystemHandler.d.ts +35 -0
- package/dist/orchestrator/FileSystemHandler.d.ts.map +1 -0
- package/dist/orchestrator/FileSystemHandler.js +138 -0
- package/dist/orchestrator/FileSystemHandler.js.map +1 -0
- package/dist/orchestrator/Orchestrator.d.ts +31 -0
- package/dist/orchestrator/Orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/Orchestrator.js +141 -0
- package/dist/orchestrator/Orchestrator.js.map +1 -0
- package/dist/orchestrator/TemplateManager.d.ts +35 -0
- package/dist/orchestrator/TemplateManager.d.ts.map +1 -0
- package/dist/orchestrator/TemplateManager.js +116 -0
- package/dist/orchestrator/TemplateManager.js.map +1 -0
- package/dist/orchestrator/index.d.ts +4 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +20 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/supabase/client.d.ts +54 -0
- package/dist/supabase/client.d.ts.map +1 -0
- package/dist/supabase/client.js +181 -0
- package/dist/supabase/client.js.map +1 -0
- package/dist/supabase/index.d.ts +3 -0
- package/dist/supabase/index.d.ts.map +1 -0
- package/dist/supabase/index.js +19 -0
- package/dist/supabase/index.js.map +1 -0
- package/dist/supabase/oauth.d.ts +25 -0
- package/dist/supabase/oauth.d.ts.map +1 -0
- package/dist/supabase/oauth.js +218 -0
- package/dist/supabase/oauth.js.map +1 -0
- package/dist/supabase/storage.d.ts +46 -0
- package/dist/supabase/storage.d.ts.map +1 -0
- package/dist/supabase/storage.js +179 -0
- package/dist/supabase/storage.js.map +1 -0
- package/dist/types/analyzers.d.ts +51 -0
- package/dist/types/analyzers.d.ts.map +1 -0
- package/dist/types/analyzers.js +3 -0
- package/dist/types/analyzers.js.map +1 -0
- package/dist/types/config.d.ts +27 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +20 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/templates.d.ts +18 -0
- package/dist/types/templates.d.ts.map +1 -0
- package/dist/types/templates.js +3 -0
- package/dist/types/templates.js.map +1 -0
- package/dist/utils/config.d.ts +17 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +46 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/fileParser.d.ts +28 -0
- package/dist/utils/fileParser.d.ts.map +1 -0
- package/dist/utils/fileParser.js +111 -0
- package/dist/utils/fileParser.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +20 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +31 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +13 -12
- package/templates/general/project-impact.yaml +34 -0
- package/templates/general/project-overview.yaml +34 -0
- package/templates/tech/architecture-project.yaml +42 -0
- package/templates/tech/features.yaml +38 -0
- package/templates/tech/stack-project.yaml +42 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImpactAnalyzer = void 0;
|
|
4
|
+
const BaseAnalyzer_1 = require("./base/BaseAnalyzer");
|
|
5
|
+
class ImpactAnalyzer extends BaseAnalyzer_1.BaseAnalyzer {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.name = 'project-impact';
|
|
9
|
+
this.outputPath = 'general/project-impact.md';
|
|
10
|
+
this.category = 'general';
|
|
11
|
+
}
|
|
12
|
+
async analyze(context) {
|
|
13
|
+
const metadata = this.extractMetadata(context);
|
|
14
|
+
return {
|
|
15
|
+
title: 'Project Impact',
|
|
16
|
+
sections: [
|
|
17
|
+
this.createSection('Problem Statement', this.extractProblemStatement(context)),
|
|
18
|
+
this.createSection('Root Cause Analysis', this.analyzeRootCause(context)),
|
|
19
|
+
this.createSection('Solution Approach', this.describeSolution(context)),
|
|
20
|
+
this.createSection('Expected Impact', this.describeImpact(context)),
|
|
21
|
+
this.createSection('Success Metrics', this.defineSuccessMetrics(context)),
|
|
22
|
+
this.createSection('Target Users', this.identifyTargetUsers(context)),
|
|
23
|
+
],
|
|
24
|
+
metadata,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
extractProblemStatement(context) {
|
|
28
|
+
// Try to extract from README
|
|
29
|
+
if (context.readme) {
|
|
30
|
+
const problemMatch = context.readme.match(/##\s*Problem\s*\n([\s\S]*?)(?=\n##|$)/i);
|
|
31
|
+
if (problemMatch) {
|
|
32
|
+
return problemMatch[1].trim();
|
|
33
|
+
}
|
|
34
|
+
// Look for "Why" section
|
|
35
|
+
const whyMatch = context.readme.match(/##\s*Why\s*\n([\s\S]*?)(?=\n##|$)/i);
|
|
36
|
+
if (whyMatch) {
|
|
37
|
+
return whyMatch[1].trim();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Generate generic problem statement based on project type
|
|
41
|
+
const projectName = context.packageJson?.name || 'this project';
|
|
42
|
+
const description = context.packageJson?.description || '';
|
|
43
|
+
if (description) {
|
|
44
|
+
return `${projectName} addresses the need for ${description.toLowerCase()}`;
|
|
45
|
+
}
|
|
46
|
+
return `${projectName} was created to solve specific challenges in its domain. The exact problem statement should be documented in the README.md file.`;
|
|
47
|
+
}
|
|
48
|
+
analyzeRootCause(context) {
|
|
49
|
+
const framework = context.framework;
|
|
50
|
+
let analysis = 'The root causes that justify this project include:\n\n';
|
|
51
|
+
if (framework) {
|
|
52
|
+
analysis += `- Need for a solution built with modern ${framework} technology\n`;
|
|
53
|
+
}
|
|
54
|
+
analysis += '- Existing solutions may not fully address the specific requirements\n';
|
|
55
|
+
analysis += '- Opportunity to create a more efficient or user-friendly approach\n';
|
|
56
|
+
analysis += '- Technical or business requirements that demand a custom solution\n';
|
|
57
|
+
return analysis;
|
|
58
|
+
}
|
|
59
|
+
describeSolution(context) {
|
|
60
|
+
const framework = context.framework;
|
|
61
|
+
const projectType = this.determineProjectType(context);
|
|
62
|
+
let solution = `This project provides a ${projectType.toLowerCase()} `;
|
|
63
|
+
if (framework) {
|
|
64
|
+
solution += `built with ${framework} `;
|
|
65
|
+
}
|
|
66
|
+
solution += 'that addresses the identified problem through:\n\n';
|
|
67
|
+
// Analyze project structure for solution components
|
|
68
|
+
const hasApi = this.getFilesMatching(context, /api|routes/).length > 0;
|
|
69
|
+
const hasComponents = this.getFilesMatching(context, /components/).length > 0;
|
|
70
|
+
const hasDatabase = this.getFilesMatching(context, /models|schema|database/).length > 0;
|
|
71
|
+
if (hasComponents) {
|
|
72
|
+
solution += '- User-friendly interface for easy interaction\n';
|
|
73
|
+
}
|
|
74
|
+
if (hasApi) {
|
|
75
|
+
solution += '- Robust API endpoints for data management and operations\n';
|
|
76
|
+
}
|
|
77
|
+
if (hasDatabase) {
|
|
78
|
+
solution += '- Structured data storage and retrieval mechanisms\n';
|
|
79
|
+
}
|
|
80
|
+
solution += '- Well-organized codebase for maintainability and scalability\n';
|
|
81
|
+
return solution;
|
|
82
|
+
}
|
|
83
|
+
describeImpact(context) {
|
|
84
|
+
const projectType = this.determineProjectType(context);
|
|
85
|
+
let impact = 'The expected impact of this project includes:\n\n';
|
|
86
|
+
if (projectType.includes('Web Application')) {
|
|
87
|
+
impact += '- Improved user experience and accessibility\n';
|
|
88
|
+
impact += '- Increased efficiency in completing tasks\n';
|
|
89
|
+
impact += '- Better data management and organization\n';
|
|
90
|
+
}
|
|
91
|
+
else if (projectType.includes('Library')) {
|
|
92
|
+
impact += '- Reduced development time for dependent projects\n';
|
|
93
|
+
impact += '- Standardized approach to common problems\n';
|
|
94
|
+
impact += '- Improved code quality through reusable components\n';
|
|
95
|
+
}
|
|
96
|
+
else if (projectType.includes('CLI')) {
|
|
97
|
+
impact += '- Automated workflows and increased productivity\n';
|
|
98
|
+
impact += '- Reduced manual errors through automation\n';
|
|
99
|
+
impact += '- Streamlined development processes\n';
|
|
100
|
+
}
|
|
101
|
+
impact += '- Long-term maintainability and scalability\n';
|
|
102
|
+
return impact;
|
|
103
|
+
}
|
|
104
|
+
defineSuccessMetrics(context) {
|
|
105
|
+
const projectType = this.determineProjectType(context);
|
|
106
|
+
let metrics = 'Success can be measured through:\n\n';
|
|
107
|
+
if (projectType.includes('Web Application')) {
|
|
108
|
+
metrics += '- User adoption and engagement rates\n';
|
|
109
|
+
metrics += '- Performance metrics (load time, response time)\n';
|
|
110
|
+
metrics += '- User satisfaction scores\n';
|
|
111
|
+
metrics += '- Feature completion and bug resolution rates\n';
|
|
112
|
+
}
|
|
113
|
+
else if (projectType.includes('Library')) {
|
|
114
|
+
metrics += '- Number of projects using the library\n';
|
|
115
|
+
metrics += '- Download and installation statistics\n';
|
|
116
|
+
metrics += '- Community contributions and feedback\n';
|
|
117
|
+
metrics += '- Code coverage and test pass rates\n';
|
|
118
|
+
}
|
|
119
|
+
else if (projectType.includes('CLI')) {
|
|
120
|
+
metrics += '- Installation and usage statistics\n';
|
|
121
|
+
metrics += '- Time saved through automation\n';
|
|
122
|
+
metrics += '- Error reduction rates\n';
|
|
123
|
+
metrics += '- User feedback and satisfaction\n';
|
|
124
|
+
}
|
|
125
|
+
return metrics;
|
|
126
|
+
}
|
|
127
|
+
identifyTargetUsers(context) {
|
|
128
|
+
const projectType = this.determineProjectType(context);
|
|
129
|
+
if (projectType.includes('CLI')) {
|
|
130
|
+
return 'Developers, DevOps engineers, and technical users who work with command-line tools and automation.';
|
|
131
|
+
}
|
|
132
|
+
if (projectType.includes('Library')) {
|
|
133
|
+
return 'Software developers and engineering teams who need to integrate this functionality into their applications.';
|
|
134
|
+
}
|
|
135
|
+
if (projectType.includes('API')) {
|
|
136
|
+
return 'Application developers and services that need to consume API endpoints for data and functionality.';
|
|
137
|
+
}
|
|
138
|
+
if (projectType.includes('Web Application')) {
|
|
139
|
+
return 'End users who interact with the web interface, including both technical and non-technical users.';
|
|
140
|
+
}
|
|
141
|
+
return 'Various stakeholders including developers, end users, and business users depending on the specific use case.';
|
|
142
|
+
}
|
|
143
|
+
determineProjectType(context) {
|
|
144
|
+
const packageJson = context.packageJson;
|
|
145
|
+
if (!packageJson)
|
|
146
|
+
return 'Software Application';
|
|
147
|
+
if (packageJson.bin)
|
|
148
|
+
return 'CLI Tool';
|
|
149
|
+
if (packageJson.main && !packageJson.scripts?.start)
|
|
150
|
+
return 'Library';
|
|
151
|
+
if (context.framework) {
|
|
152
|
+
const hasApi = this.getFilesMatching(context, /api|routes/).length > 0;
|
|
153
|
+
const hasComponents = this.getFilesMatching(context, /components/).length > 0;
|
|
154
|
+
if (hasApi && hasComponents)
|
|
155
|
+
return 'Full-Stack Web Application';
|
|
156
|
+
if (hasApi)
|
|
157
|
+
return 'Backend API Service';
|
|
158
|
+
if (hasComponents)
|
|
159
|
+
return 'Frontend Web Application';
|
|
160
|
+
}
|
|
161
|
+
return 'Software Application';
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.ImpactAnalyzer = ImpactAnalyzer;
|
|
165
|
+
//# sourceMappingURL=ImpactAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImpactAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/ImpactAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseAnalyzer } from './base/BaseAnalyzer';
|
|
2
|
+
import { ProjectContext, AnalysisOutput } from '../types';
|
|
3
|
+
export declare class ProjectAnalyzer extends BaseAnalyzer {
|
|
4
|
+
name: string;
|
|
5
|
+
outputPath: string;
|
|
6
|
+
category: 'general' | 'tech';
|
|
7
|
+
analyze(context: ProjectContext): Promise<AnalysisOutput>;
|
|
8
|
+
private extractPurpose;
|
|
9
|
+
private extractCentralIdea;
|
|
10
|
+
private determineProjectType;
|
|
11
|
+
private extractObjectives;
|
|
12
|
+
private identifyTargetAudience;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ProjectAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/ProjectAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,IAAI,SAAsB;IAC1B,UAAU,SAAiC;IAC3C,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAa;IAEnC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAgC/D,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,sBAAsB;CAqB/B"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjectAnalyzer = void 0;
|
|
4
|
+
const BaseAnalyzer_1 = require("./base/BaseAnalyzer");
|
|
5
|
+
class ProjectAnalyzer extends BaseAnalyzer_1.BaseAnalyzer {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.name = 'project-overview';
|
|
9
|
+
this.outputPath = 'general/project-overview.md';
|
|
10
|
+
this.category = 'general';
|
|
11
|
+
}
|
|
12
|
+
async analyze(context) {
|
|
13
|
+
const metadata = this.extractMetadata(context);
|
|
14
|
+
// Extract project name
|
|
15
|
+
const projectName = metadata.projectName;
|
|
16
|
+
// Extract purpose from package.json or README
|
|
17
|
+
const purpose = this.extractPurpose(context);
|
|
18
|
+
// Determine project type
|
|
19
|
+
const projectType = this.determineProjectType(context);
|
|
20
|
+
// Extract objectives
|
|
21
|
+
const objectives = this.extractObjectives(context);
|
|
22
|
+
// Identify target audience
|
|
23
|
+
const targetAudience = this.identifyTargetAudience(context);
|
|
24
|
+
return {
|
|
25
|
+
title: 'Project Overview',
|
|
26
|
+
sections: [
|
|
27
|
+
this.createSection('Project Name', projectName),
|
|
28
|
+
this.createSection('Purpose', purpose),
|
|
29
|
+
this.createSection('Central Idea', this.extractCentralIdea(context)),
|
|
30
|
+
this.createSection('Objectives', objectives),
|
|
31
|
+
this.createSection('Target Audience', targetAudience),
|
|
32
|
+
this.createSection('Project Type', projectType),
|
|
33
|
+
],
|
|
34
|
+
metadata,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
extractPurpose(context) {
|
|
38
|
+
if (context.packageJson?.description) {
|
|
39
|
+
return context.packageJson.description;
|
|
40
|
+
}
|
|
41
|
+
if (context.readme) {
|
|
42
|
+
// Try to extract first paragraph from README
|
|
43
|
+
const lines = context.readme.split('\n');
|
|
44
|
+
for (const line of lines) {
|
|
45
|
+
if (line.trim() && !line.startsWith('#') && line.length > 20) {
|
|
46
|
+
return line.trim();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return 'No description available. Please add a description to package.json or README.md';
|
|
51
|
+
}
|
|
52
|
+
extractCentralIdea(context) {
|
|
53
|
+
const framework = context.framework;
|
|
54
|
+
const fileCount = context.files.length;
|
|
55
|
+
const hasApi = this.getFilesMatching(context, /api|routes/).length > 0;
|
|
56
|
+
const hasComponents = this.getFilesMatching(context, /components/).length > 0;
|
|
57
|
+
let idea = 'This project ';
|
|
58
|
+
if (framework) {
|
|
59
|
+
idea += `is built with ${framework} `;
|
|
60
|
+
}
|
|
61
|
+
if (hasApi && hasComponents) {
|
|
62
|
+
idea += 'and provides both a user interface and backend API functionality. ';
|
|
63
|
+
}
|
|
64
|
+
else if (hasApi) {
|
|
65
|
+
idea += 'and focuses on providing backend API services. ';
|
|
66
|
+
}
|
|
67
|
+
else if (hasComponents) {
|
|
68
|
+
idea += 'and focuses on providing a user interface. ';
|
|
69
|
+
}
|
|
70
|
+
idea += `The codebase consists of ${fileCount} files organized in a structured manner.`;
|
|
71
|
+
return idea;
|
|
72
|
+
}
|
|
73
|
+
determineProjectType(context) {
|
|
74
|
+
const packageJson = context.packageJson;
|
|
75
|
+
if (!packageJson) {
|
|
76
|
+
return 'Unknown project type';
|
|
77
|
+
}
|
|
78
|
+
// Check for CLI
|
|
79
|
+
if (packageJson.bin) {
|
|
80
|
+
return 'Command Line Interface (CLI) Tool';
|
|
81
|
+
}
|
|
82
|
+
// Check for library
|
|
83
|
+
if (packageJson.main && !packageJson.scripts?.start) {
|
|
84
|
+
return 'Library / Package';
|
|
85
|
+
}
|
|
86
|
+
// Check for web application
|
|
87
|
+
if (context.framework) {
|
|
88
|
+
const hasApi = this.getFilesMatching(context, /api|routes/).length > 0;
|
|
89
|
+
const hasComponents = this.getFilesMatching(context, /components/).length > 0;
|
|
90
|
+
if (hasApi && hasComponents) {
|
|
91
|
+
return 'Full-Stack Web Application';
|
|
92
|
+
}
|
|
93
|
+
else if (hasApi) {
|
|
94
|
+
return 'Backend API Service';
|
|
95
|
+
}
|
|
96
|
+
else if (hasComponents) {
|
|
97
|
+
return 'Frontend Web Application';
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return 'Software Application';
|
|
101
|
+
}
|
|
102
|
+
extractObjectives(context) {
|
|
103
|
+
const objectives = [];
|
|
104
|
+
// Analyze from README if available
|
|
105
|
+
if (context.readme) {
|
|
106
|
+
const featuresMatch = context.readme.match(/##\s*Features?\s*\n([\s\S]*?)(?=\n##|$)/i);
|
|
107
|
+
if (featuresMatch) {
|
|
108
|
+
const features = featuresMatch[1]
|
|
109
|
+
.split('\n')
|
|
110
|
+
.filter((line) => line.trim().startsWith('-') || line.trim().startsWith('*'))
|
|
111
|
+
.map((line) => line.replace(/^[-*]\s*/, '').trim())
|
|
112
|
+
.filter((line) => line.length > 0);
|
|
113
|
+
objectives.push(...features.slice(0, 5));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// If no objectives found, generate generic ones
|
|
117
|
+
if (objectives.length === 0) {
|
|
118
|
+
objectives.push('Provide a reliable and efficient solution');
|
|
119
|
+
objectives.push('Maintain clean and maintainable code architecture');
|
|
120
|
+
objectives.push('Ensure scalability and performance');
|
|
121
|
+
}
|
|
122
|
+
return this.formatList(objectives);
|
|
123
|
+
}
|
|
124
|
+
identifyTargetAudience(context) {
|
|
125
|
+
const projectType = this.determineProjectType(context);
|
|
126
|
+
if (projectType.includes('CLI')) {
|
|
127
|
+
return 'Developers and technical users who need command-line tools';
|
|
128
|
+
}
|
|
129
|
+
if (projectType.includes('Library')) {
|
|
130
|
+
return 'Developers who need to integrate this functionality into their projects';
|
|
131
|
+
}
|
|
132
|
+
if (projectType.includes('API')) {
|
|
133
|
+
return 'Applications and services that need to consume API endpoints';
|
|
134
|
+
}
|
|
135
|
+
if (projectType.includes('Web Application')) {
|
|
136
|
+
return 'End users who interact with the web interface';
|
|
137
|
+
}
|
|
138
|
+
return 'General users and stakeholders';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.ProjectAnalyzer = ProjectAnalyzer;
|
|
142
|
+
//# sourceMappingURL=ProjectAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/ProjectAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseAnalyzer } from './base/BaseAnalyzer';
|
|
2
|
+
import { ProjectContext, AnalysisOutput } from '../types';
|
|
3
|
+
export declare class StackAnalyzer extends BaseAnalyzer {
|
|
4
|
+
name: string;
|
|
5
|
+
outputPath: string;
|
|
6
|
+
category: 'general' | 'tech';
|
|
7
|
+
analyze(context: ProjectContext): Promise<AnalysisOutput>;
|
|
8
|
+
private analyzeCoreStack;
|
|
9
|
+
private analyzeProductionDeps;
|
|
10
|
+
private analyzeDevDeps;
|
|
11
|
+
private categorizeDependencies;
|
|
12
|
+
private isUIPackage;
|
|
13
|
+
private isStateManagement;
|
|
14
|
+
private isDataFetching;
|
|
15
|
+
private isDatabase;
|
|
16
|
+
private isAuth;
|
|
17
|
+
private isTesting;
|
|
18
|
+
private isBuildTool;
|
|
19
|
+
private isUtility;
|
|
20
|
+
private getPackageDescription;
|
|
21
|
+
private identifyDatabase;
|
|
22
|
+
private identifyBuildTools;
|
|
23
|
+
private identifyTestingTools;
|
|
24
|
+
private analyzeDeployment;
|
|
25
|
+
private describeEnvironmentSetup;
|
|
26
|
+
private getScriptDescription;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=StackAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StackAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/StackAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D,qBAAa,aAAc,SAAQ,YAAY;IAC7C,IAAI,SAAmB;IACvB,UAAU,SAA2B;IACrC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAU;IAEhC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB/D,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,wBAAwB;IAmChC,OAAO,CAAC,oBAAoB;CAW7B"}
|