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,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ConfigManager = void 0;
|
|
7
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
class ConfigManager {
|
|
10
|
+
/**
|
|
11
|
+
* Read DevCache configuration
|
|
12
|
+
*/
|
|
13
|
+
static async readConfig(rootPath = process.cwd()) {
|
|
14
|
+
const configPath = path_1.default.join(rootPath, this.CONFIG_FILE);
|
|
15
|
+
try {
|
|
16
|
+
const content = await promises_1.default.readFile(configPath, 'utf-8');
|
|
17
|
+
return JSON.parse(content);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
throw new Error('DevCache not initialized. Run "devcache init" first.');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Write DevCache configuration
|
|
25
|
+
*/
|
|
26
|
+
static async writeConfig(config, rootPath = process.cwd()) {
|
|
27
|
+
const configPath = path_1.default.join(rootPath, this.CONFIG_FILE);
|
|
28
|
+
await promises_1.default.writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Check if DevCache is initialized
|
|
32
|
+
*/
|
|
33
|
+
static async isInitialized(rootPath = process.cwd()) {
|
|
34
|
+
const configPath = path_1.default.join(rootPath, this.CONFIG_FILE);
|
|
35
|
+
try {
|
|
36
|
+
await promises_1.default.access(configPath);
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.ConfigManager = ConfigManager;
|
|
45
|
+
ConfigManager.CONFIG_FILE = '.devcache.json';
|
|
46
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAC7B,gDAAwB;AAGxB,MAAa,aAAa;IAGxB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;QACtD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,sDAAsD,CACvD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,MAAsB,EACtB,WAAmB,OAAO,CAAC,GAAG,EAAE;QAEhC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;QACzD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;;AA1CH,sCA2CC;AA1CgB,yBAAW,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FileInfo, PackageJson } from '../types';
|
|
2
|
+
export declare class FileParser {
|
|
3
|
+
/**
|
|
4
|
+
* Scan project directory and return file information
|
|
5
|
+
*/
|
|
6
|
+
static scanProject(rootPath: string, includePatterns: string[], excludePatterns: string[]): Promise<FileInfo[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Read and parse package.json
|
|
9
|
+
*/
|
|
10
|
+
static readPackageJson(rootPath: string): Promise<PackageJson | null>;
|
|
11
|
+
/**
|
|
12
|
+
* Read README.md content
|
|
13
|
+
*/
|
|
14
|
+
static readReadme(rootPath: string): Promise<string | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Read file content
|
|
17
|
+
*/
|
|
18
|
+
static readFile(filePath: string): Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Detect project framework
|
|
21
|
+
*/
|
|
22
|
+
static detectFramework(packageJson: PackageJson | null): string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Get file extension statistics
|
|
25
|
+
*/
|
|
26
|
+
static getFileStats(files: FileInfo[]): Record<string, number>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=fileParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileParser.d.ts","sourceRoot":"","sources":["../../src/utils/fileParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,UAAU;IACrB;;OAEG;WACU,WAAW,CACtB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IA4BtB;;OAEG;WACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAU3E;;OAEG;WACU,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAejE;;OAEG;WACU,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAmB3E;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAU/D"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FileParser = void 0;
|
|
7
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const glob_1 = require("glob");
|
|
10
|
+
class FileParser {
|
|
11
|
+
/**
|
|
12
|
+
* Scan project directory and return file information
|
|
13
|
+
*/
|
|
14
|
+
static async scanProject(rootPath, includePatterns, excludePatterns) {
|
|
15
|
+
const files = [];
|
|
16
|
+
for (const pattern of includePatterns) {
|
|
17
|
+
const matches = await (0, glob_1.glob)(pattern, {
|
|
18
|
+
cwd: rootPath,
|
|
19
|
+
ignore: excludePatterns,
|
|
20
|
+
nodir: true,
|
|
21
|
+
absolute: false,
|
|
22
|
+
});
|
|
23
|
+
for (const match of matches) {
|
|
24
|
+
const fullPath = path_1.default.join(rootPath, match);
|
|
25
|
+
const stats = await promises_1.default.stat(fullPath);
|
|
26
|
+
files.push({
|
|
27
|
+
path: fullPath,
|
|
28
|
+
relativePath: match,
|
|
29
|
+
name: path_1.default.basename(match),
|
|
30
|
+
extension: path_1.default.extname(match),
|
|
31
|
+
size: stats.size,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return files;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Read and parse package.json
|
|
39
|
+
*/
|
|
40
|
+
static async readPackageJson(rootPath) {
|
|
41
|
+
try {
|
|
42
|
+
const packagePath = path_1.default.join(rootPath, 'package.json');
|
|
43
|
+
const content = await promises_1.default.readFile(packagePath, 'utf-8');
|
|
44
|
+
return JSON.parse(content);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Read README.md content
|
|
52
|
+
*/
|
|
53
|
+
static async readReadme(rootPath) {
|
|
54
|
+
const readmeFiles = ['README.md', 'readme.md', 'Readme.md', 'README.MD'];
|
|
55
|
+
for (const filename of readmeFiles) {
|
|
56
|
+
try {
|
|
57
|
+
const readmePath = path_1.default.join(rootPath, filename);
|
|
58
|
+
return await promises_1.default.readFile(readmePath, 'utf-8');
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Read file content
|
|
68
|
+
*/
|
|
69
|
+
static async readFile(filePath) {
|
|
70
|
+
return await promises_1.default.readFile(filePath, 'utf-8');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Detect project framework
|
|
74
|
+
*/
|
|
75
|
+
static detectFramework(packageJson) {
|
|
76
|
+
if (!packageJson)
|
|
77
|
+
return undefined;
|
|
78
|
+
const deps = {
|
|
79
|
+
...packageJson.dependencies,
|
|
80
|
+
...packageJson.devDependencies,
|
|
81
|
+
};
|
|
82
|
+
if (deps['next'])
|
|
83
|
+
return 'Next.js';
|
|
84
|
+
if (deps['react'])
|
|
85
|
+
return 'React';
|
|
86
|
+
if (deps['vue'])
|
|
87
|
+
return 'Vue.js';
|
|
88
|
+
if (deps['@angular/core'])
|
|
89
|
+
return 'Angular';
|
|
90
|
+
if (deps['express'])
|
|
91
|
+
return 'Express';
|
|
92
|
+
if (deps['fastify'])
|
|
93
|
+
return 'Fastify';
|
|
94
|
+
if (deps['nestjs'])
|
|
95
|
+
return 'NestJS';
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get file extension statistics
|
|
100
|
+
*/
|
|
101
|
+
static getFileStats(files) {
|
|
102
|
+
const stats = {};
|
|
103
|
+
for (const file of files) {
|
|
104
|
+
const ext = file.extension || 'no-extension';
|
|
105
|
+
stats[ext] = (stats[ext] || 0) + 1;
|
|
106
|
+
}
|
|
107
|
+
return stats;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.FileParser = FileParser;
|
|
111
|
+
//# sourceMappingURL=fileParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileParser.js","sourceRoot":"","sources":["../../src/utils/fileParser.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAC7B,gDAAwB;AACxB,+BAA4B;AAG5B,MAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,QAAgB,EAChB,eAAyB,EACzB,eAAyB;QAEzB,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAA,WAAI,EAAC,OAAO,EAAE;gBAClC,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEtC,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,KAAK;oBACnB,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC1B,SAAS,EAAE,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC3C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB;QACtC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAEzE,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACjD,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAgB;QACpC,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,WAA+B;QACpD,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QAEnC,MAAM,IAAI,GAAG;YACX,GAAG,WAAW,CAAC,YAAY;YAC3B,GAAG,WAAW,CAAC,eAAe;SAC/B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAClC,IAAI,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QACjC,IAAI,IAAI,CAAC,eAAe,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAEpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAiB;QACnC,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC;YAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA7GD,gCA6GC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./logger"), exports);
|
|
18
|
+
__exportStar(require("./fileParser"), exports);
|
|
19
|
+
__exportStar(require("./config"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class Logger {
|
|
2
|
+
static info(message: string): void;
|
|
3
|
+
static success(message: string): void;
|
|
4
|
+
static error(message: string): void;
|
|
5
|
+
static warn(message: string): void;
|
|
6
|
+
static debug(message: string): void;
|
|
7
|
+
static section(title: string): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACjB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMnC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGpC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Logger = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
class Logger {
|
|
9
|
+
static info(message) {
|
|
10
|
+
console.log(chalk_1.default.blue('ℹ'), message);
|
|
11
|
+
}
|
|
12
|
+
static success(message) {
|
|
13
|
+
console.log(chalk_1.default.green('✓'), message);
|
|
14
|
+
}
|
|
15
|
+
static error(message) {
|
|
16
|
+
console.log(chalk_1.default.red('✗'), message);
|
|
17
|
+
}
|
|
18
|
+
static warn(message) {
|
|
19
|
+
console.log(chalk_1.default.yellow('⚠'), message);
|
|
20
|
+
}
|
|
21
|
+
static debug(message) {
|
|
22
|
+
if (process.env.DEBUG) {
|
|
23
|
+
console.log(chalk_1.default.gray('🔍'), message);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
static section(title) {
|
|
27
|
+
console.log('\n' + chalk_1.default.bold.cyan(title));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.Logger = Logger;
|
|
31
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,MAAa,MAAM;IACjB,MAAM,CAAC,IAAI,CAAC,OAAe;QACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe;QACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AA1BD,wBA0BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devcache-hub",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Intelligent project documentation generator with cloud sync and RAG-powered search",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -45,23 +45,24 @@
|
|
|
45
45
|
"node": ">=18.0.0"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"
|
|
48
|
+
"@supabase/supabase-js": "^2.47.10",
|
|
49
49
|
"chalk": "^5.3.0",
|
|
50
|
-
"
|
|
50
|
+
"commander": "^12.1.0",
|
|
51
|
+
"dotenv": "^16.4.7",
|
|
52
|
+
"glob": "^11.0.0",
|
|
51
53
|
"inquirer": "^12.2.0",
|
|
52
|
-
"
|
|
54
|
+
"open": "^11.0.0",
|
|
53
55
|
"openai": "^4.77.3",
|
|
54
|
-
"
|
|
55
|
-
"yaml": "^2.6.1"
|
|
56
|
-
"dotenv": "^16.4.7"
|
|
56
|
+
"ora": "^8.1.1",
|
|
57
|
+
"yaml": "^2.6.1"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"typescript": "^5.3.3",
|
|
60
|
-
"@types/node": "^20.11.19",
|
|
61
60
|
"@types/inquirer": "^9.0.7",
|
|
62
|
-
"ts-node": "^10.9.2",
|
|
63
|
-
"jest": "^29.7.0",
|
|
64
61
|
"@types/jest": "^29.5.12",
|
|
65
|
-
"
|
|
62
|
+
"@types/node": "^20.11.19",
|
|
63
|
+
"jest": "^29.7.0",
|
|
64
|
+
"ts-jest": "^29.1.2",
|
|
65
|
+
"ts-node": "^10.9.2",
|
|
66
|
+
"typescript": "^5.3.3"
|
|
66
67
|
}
|
|
67
68
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: project-impact
|
|
2
|
+
category: general
|
|
3
|
+
outputFile: project-impact.md
|
|
4
|
+
description: Analysis of the problem being solved and expected impact
|
|
5
|
+
analyzer: ImpactAnalyzer
|
|
6
|
+
|
|
7
|
+
sections:
|
|
8
|
+
- heading: Project Impact
|
|
9
|
+
prompt: Analyze the impact and justification for this project
|
|
10
|
+
required: true
|
|
11
|
+
subsections:
|
|
12
|
+
- heading: Problem Statement
|
|
13
|
+
prompt: Clearly define the problem this project addresses
|
|
14
|
+
required: true
|
|
15
|
+
|
|
16
|
+
- heading: Root Cause Analysis
|
|
17
|
+
prompt: Explain why this problem exists and its underlying causes
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- heading: Solution Approach
|
|
21
|
+
prompt: Describe how this project solves the identified problem
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- heading: Expected Impact
|
|
25
|
+
prompt: Detail the expected outcomes and benefits
|
|
26
|
+
required: true
|
|
27
|
+
|
|
28
|
+
- heading: Success Metrics
|
|
29
|
+
prompt: Define how success will be measured
|
|
30
|
+
required: false
|
|
31
|
+
|
|
32
|
+
- heading: Target Users
|
|
33
|
+
prompt: Identify who will benefit from this solution
|
|
34
|
+
required: true
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: project-overview
|
|
2
|
+
category: general
|
|
3
|
+
outputFile: project-overview.md
|
|
4
|
+
description: High-level overview of the project's purpose and objectives
|
|
5
|
+
analyzer: ProjectAnalyzer
|
|
6
|
+
|
|
7
|
+
sections:
|
|
8
|
+
- heading: Project Overview
|
|
9
|
+
prompt: Provide a comprehensive overview of the project
|
|
10
|
+
required: true
|
|
11
|
+
subsections:
|
|
12
|
+
- heading: Project Name
|
|
13
|
+
prompt: Extract the project name from package.json
|
|
14
|
+
required: true
|
|
15
|
+
|
|
16
|
+
- heading: Purpose
|
|
17
|
+
prompt: Describe the main purpose and central idea of the project (conceptual only, no code)
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- heading: Central Idea
|
|
21
|
+
prompt: Explain the core concept and vision behind the project
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- heading: Objectives
|
|
25
|
+
prompt: List the main objectives and goals of the project
|
|
26
|
+
required: true
|
|
27
|
+
|
|
28
|
+
- heading: Target Audience
|
|
29
|
+
prompt: Identify who will use or benefit from this project
|
|
30
|
+
required: false
|
|
31
|
+
|
|
32
|
+
- heading: Project Type
|
|
33
|
+
prompt: Classify the project (web app, library, CLI tool, API, etc.)
|
|
34
|
+
required: true
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: architecture-project
|
|
2
|
+
category: tech
|
|
3
|
+
outputFile: architecture-project.md
|
|
4
|
+
description: Technical architecture overview and design patterns
|
|
5
|
+
analyzer: ArchitectureAnalyzer
|
|
6
|
+
|
|
7
|
+
sections:
|
|
8
|
+
- heading: Architecture Overview
|
|
9
|
+
prompt: Provide comprehensive technical architecture analysis
|
|
10
|
+
required: true
|
|
11
|
+
subsections:
|
|
12
|
+
- heading: Framework
|
|
13
|
+
prompt: Identify the main framework being used
|
|
14
|
+
required: true
|
|
15
|
+
|
|
16
|
+
- heading: Architecture Pattern
|
|
17
|
+
prompt: Identify design patterns (MVC, MVVM, Clean Architecture, etc.)
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- heading: Project Structure
|
|
21
|
+
prompt: Describe the folder and file organization
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- heading: Component Hierarchy
|
|
25
|
+
prompt: Map out the component structure and relationships
|
|
26
|
+
required: false
|
|
27
|
+
|
|
28
|
+
- heading: Data Flow
|
|
29
|
+
prompt: Explain how data moves through the application
|
|
30
|
+
required: true
|
|
31
|
+
|
|
32
|
+
- heading: Routing Structure
|
|
33
|
+
prompt: Describe the routing architecture
|
|
34
|
+
required: false
|
|
35
|
+
|
|
36
|
+
- heading: State Management
|
|
37
|
+
prompt: Identify state management approach
|
|
38
|
+
required: false
|
|
39
|
+
|
|
40
|
+
- heading: Key Design Decisions
|
|
41
|
+
prompt: Highlight important architectural choices
|
|
42
|
+
required: true
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: features
|
|
2
|
+
category: tech
|
|
3
|
+
outputFile: features.md
|
|
4
|
+
description: Main features and functionality analysis
|
|
5
|
+
analyzer: FeaturesAnalyzer
|
|
6
|
+
|
|
7
|
+
sections:
|
|
8
|
+
- heading: Features
|
|
9
|
+
prompt: Analyze and document main features
|
|
10
|
+
required: true
|
|
11
|
+
subsections:
|
|
12
|
+
- heading: Core Features
|
|
13
|
+
prompt: List and describe main features
|
|
14
|
+
required: true
|
|
15
|
+
|
|
16
|
+
- heading: API Endpoints
|
|
17
|
+
prompt: Document API routes and endpoints
|
|
18
|
+
required: false
|
|
19
|
+
|
|
20
|
+
- heading: Authentication
|
|
21
|
+
prompt: Describe authentication and authorization
|
|
22
|
+
required: false
|
|
23
|
+
|
|
24
|
+
- heading: User Interface
|
|
25
|
+
prompt: Describe main UI components and pages
|
|
26
|
+
required: false
|
|
27
|
+
|
|
28
|
+
- heading: Data Management
|
|
29
|
+
prompt: Explain data handling and storage
|
|
30
|
+
required: false
|
|
31
|
+
|
|
32
|
+
- heading: Integration Points
|
|
33
|
+
prompt: Identify external integrations
|
|
34
|
+
required: false
|
|
35
|
+
|
|
36
|
+
- heading: User Flows
|
|
37
|
+
prompt: Describe main user workflows
|
|
38
|
+
required: false
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: stack-project
|
|
2
|
+
category: tech
|
|
3
|
+
outputFile: stack-project.md
|
|
4
|
+
description: Complete technology stack analysis
|
|
5
|
+
analyzer: StackAnalyzer
|
|
6
|
+
|
|
7
|
+
sections:
|
|
8
|
+
- heading: Technology Stack
|
|
9
|
+
prompt: Analyze the complete technology stack
|
|
10
|
+
required: true
|
|
11
|
+
subsections:
|
|
12
|
+
- heading: Core Technologies
|
|
13
|
+
prompt: List main technologies (framework, language, runtime)
|
|
14
|
+
required: true
|
|
15
|
+
|
|
16
|
+
- heading: Production Dependencies
|
|
17
|
+
prompt: List and explain production dependencies
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- heading: Development Dependencies
|
|
21
|
+
prompt: List and explain development dependencies
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- heading: Database
|
|
25
|
+
prompt: Identify database technology and ORM
|
|
26
|
+
required: false
|
|
27
|
+
|
|
28
|
+
- heading: Build Tools
|
|
29
|
+
prompt: Identify build and bundling tools
|
|
30
|
+
required: true
|
|
31
|
+
|
|
32
|
+
- heading: Testing Framework
|
|
33
|
+
prompt: Identify testing tools and frameworks
|
|
34
|
+
required: false
|
|
35
|
+
|
|
36
|
+
- heading: Deployment
|
|
37
|
+
prompt: Describe deployment configuration
|
|
38
|
+
required: false
|
|
39
|
+
|
|
40
|
+
- heading: Environment Setup
|
|
41
|
+
prompt: Explain development environment requirements
|
|
42
|
+
required: true
|