devcache-hub 0.1.2 → 0.3.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.
Files changed (107) hide show
  1. package/dist/analyzers/ArchitectureAnalyzer.d.ts +17 -0
  2. package/dist/analyzers/ArchitectureAnalyzer.d.ts.map +1 -0
  3. package/dist/analyzers/ArchitectureAnalyzer.js +217 -0
  4. package/dist/analyzers/ArchitectureAnalyzer.js.map +1 -0
  5. package/dist/analyzers/FeaturesAnalyzer.d.ts +18 -0
  6. package/dist/analyzers/FeaturesAnalyzer.d.ts.map +1 -0
  7. package/dist/analyzers/FeaturesAnalyzer.js +258 -0
  8. package/dist/analyzers/FeaturesAnalyzer.js.map +1 -0
  9. package/dist/analyzers/ImpactAnalyzer.d.ts +16 -0
  10. package/dist/analyzers/ImpactAnalyzer.d.ts.map +1 -0
  11. package/dist/analyzers/ImpactAnalyzer.js +165 -0
  12. package/dist/analyzers/ImpactAnalyzer.js.map +1 -0
  13. package/dist/analyzers/ProjectAnalyzer.d.ts +14 -0
  14. package/dist/analyzers/ProjectAnalyzer.d.ts.map +1 -0
  15. package/dist/analyzers/ProjectAnalyzer.js +142 -0
  16. package/dist/analyzers/ProjectAnalyzer.js.map +1 -0
  17. package/dist/analyzers/StackAnalyzer.d.ts +28 -0
  18. package/dist/analyzers/StackAnalyzer.d.ts.map +1 -0
  19. package/dist/analyzers/StackAnalyzer.js +320 -0
  20. package/dist/analyzers/StackAnalyzer.js.map +1 -0
  21. package/dist/analyzers/base/BaseAnalyzer.d.ts +39 -0
  22. package/dist/analyzers/base/BaseAnalyzer.d.ts.map +1 -0
  23. package/dist/analyzers/base/BaseAnalyzer.js +64 -0
  24. package/dist/analyzers/base/BaseAnalyzer.js.map +1 -0
  25. package/dist/analyzers/index.d.ts +7 -0
  26. package/dist/analyzers/index.d.ts.map +1 -0
  27. package/dist/analyzers/index.js +23 -0
  28. package/dist/analyzers/index.js.map +1 -0
  29. package/dist/cli/commands/generate.d.ts.map +1 -1
  30. package/dist/cli/commands/generate.js +32 -19
  31. package/dist/cli/commands/generate.js.map +1 -1
  32. package/dist/cli/commands/login.d.ts.map +1 -1
  33. package/dist/cli/commands/login.js +89 -19
  34. package/dist/cli/commands/login.js.map +1 -1
  35. package/dist/cli/commands/push.d.ts.map +1 -1
  36. package/dist/cli/commands/push.js +81 -10
  37. package/dist/cli/commands/push.js.map +1 -1
  38. package/dist/orchestrator/FileSystemHandler.d.ts +35 -0
  39. package/dist/orchestrator/FileSystemHandler.d.ts.map +1 -0
  40. package/dist/orchestrator/FileSystemHandler.js +138 -0
  41. package/dist/orchestrator/FileSystemHandler.js.map +1 -0
  42. package/dist/orchestrator/Orchestrator.d.ts +31 -0
  43. package/dist/orchestrator/Orchestrator.d.ts.map +1 -0
  44. package/dist/orchestrator/Orchestrator.js +141 -0
  45. package/dist/orchestrator/Orchestrator.js.map +1 -0
  46. package/dist/orchestrator/TemplateManager.d.ts +35 -0
  47. package/dist/orchestrator/TemplateManager.d.ts.map +1 -0
  48. package/dist/orchestrator/TemplateManager.js +116 -0
  49. package/dist/orchestrator/TemplateManager.js.map +1 -0
  50. package/dist/orchestrator/index.d.ts +4 -0
  51. package/dist/orchestrator/index.d.ts.map +1 -0
  52. package/dist/orchestrator/index.js +20 -0
  53. package/dist/orchestrator/index.js.map +1 -0
  54. package/dist/supabase/client.d.ts +54 -0
  55. package/dist/supabase/client.d.ts.map +1 -0
  56. package/dist/supabase/client.js +181 -0
  57. package/dist/supabase/client.js.map +1 -0
  58. package/dist/supabase/index.d.ts +3 -0
  59. package/dist/supabase/index.d.ts.map +1 -0
  60. package/dist/supabase/index.js +19 -0
  61. package/dist/supabase/index.js.map +1 -0
  62. package/dist/supabase/oauth.d.ts +25 -0
  63. package/dist/supabase/oauth.d.ts.map +1 -0
  64. package/dist/supabase/oauth.js +218 -0
  65. package/dist/supabase/oauth.js.map +1 -0
  66. package/dist/supabase/storage.d.ts +46 -0
  67. package/dist/supabase/storage.d.ts.map +1 -0
  68. package/dist/supabase/storage.js +179 -0
  69. package/dist/supabase/storage.js.map +1 -0
  70. package/dist/types/analyzers.d.ts +51 -0
  71. package/dist/types/analyzers.d.ts.map +1 -0
  72. package/dist/types/analyzers.js +3 -0
  73. package/dist/types/analyzers.js.map +1 -0
  74. package/dist/types/config.d.ts +27 -0
  75. package/dist/types/config.d.ts.map +1 -0
  76. package/dist/types/config.js +3 -0
  77. package/dist/types/config.js.map +1 -0
  78. package/dist/types/index.d.ts +4 -0
  79. package/dist/types/index.d.ts.map +1 -0
  80. package/dist/types/index.js +20 -0
  81. package/dist/types/index.js.map +1 -0
  82. package/dist/types/templates.d.ts +18 -0
  83. package/dist/types/templates.d.ts.map +1 -0
  84. package/dist/types/templates.js +3 -0
  85. package/dist/types/templates.js.map +1 -0
  86. package/dist/utils/config.d.ts +17 -0
  87. package/dist/utils/config.d.ts.map +1 -0
  88. package/dist/utils/config.js +46 -0
  89. package/dist/utils/config.js.map +1 -0
  90. package/dist/utils/fileParser.d.ts +28 -0
  91. package/dist/utils/fileParser.d.ts.map +1 -0
  92. package/dist/utils/fileParser.js +111 -0
  93. package/dist/utils/fileParser.js.map +1 -0
  94. package/dist/utils/index.d.ts +4 -0
  95. package/dist/utils/index.d.ts.map +1 -0
  96. package/dist/utils/index.js +20 -0
  97. package/dist/utils/index.js.map +1 -0
  98. package/dist/utils/logger.d.ts +9 -0
  99. package/dist/utils/logger.d.ts.map +1 -0
  100. package/dist/utils/logger.js +31 -0
  101. package/dist/utils/logger.js.map +1 -0
  102. package/package.json +15 -14
  103. package/templates/general/project-impact.yaml +34 -0
  104. package/templates/general/project-overview.yaml +34 -0
  105. package/templates/tech/architecture-project.yaml +42 -0
  106. package/templates/tech/features.yaml +38 -0
  107. package/templates/tech/stack-project.yaml +42 -0
@@ -0,0 +1,218 @@
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.OAuthFlow = void 0;
7
+ const http_1 = require("http");
8
+ const utils_1 = require("../utils");
9
+ const open_1 = __importDefault(require("open"));
10
+ const PORT = 54321;
11
+ const CALLBACK_PATH = '/auth/callback';
12
+ class OAuthFlow {
13
+ constructor() {
14
+ this.server = null;
15
+ this.resolve = null;
16
+ this.reject = null;
17
+ }
18
+ /**
19
+ * Start OAuth flow
20
+ */
21
+ async startFlow(appUrl) {
22
+ return new Promise((resolve, reject) => {
23
+ this.resolve = resolve;
24
+ this.reject = reject;
25
+ // Create local server to receive callback
26
+ this.server = (0, http_1.createServer)((req, res) => this.handleRequest(req, res));
27
+ this.server.listen(PORT, () => {
28
+ utils_1.Logger.info('Starting authentication flow...');
29
+ // Build OAuth URL
30
+ const authUrl = `${appUrl}/auth/cli?redirect_uri=http://localhost:${PORT}${CALLBACK_PATH}`;
31
+ utils_1.Logger.info('Opening browser for authentication...');
32
+ utils_1.Logger.debug(`Auth URL: ${authUrl}`);
33
+ // Open browser
34
+ (0, open_1.default)(authUrl).catch((error) => {
35
+ utils_1.Logger.warn('Could not open browser automatically');
36
+ console.log(`\nPlease open this URL in your browser:\n${authUrl}\n`);
37
+ });
38
+ });
39
+ // Timeout after 5 minutes
40
+ setTimeout(() => {
41
+ this.cleanup();
42
+ reject(new Error('Authentication timeout. Please try again.'));
43
+ }, 5 * 60 * 1000);
44
+ });
45
+ }
46
+ /**
47
+ * Handle callback request
48
+ */
49
+ handleRequest(req, res) {
50
+ if (!req.url?.startsWith(CALLBACK_PATH)) {
51
+ res.writeHead(404);
52
+ res.end('Not found');
53
+ return;
54
+ }
55
+ try {
56
+ // Parse query parameters
57
+ const url = new URL(req.url, `http://localhost:${PORT}`);
58
+ const params = url.searchParams;
59
+ // Check for error
60
+ const error = params.get('error');
61
+ if (error) {
62
+ throw new Error(params.get('error_description') || error);
63
+ }
64
+ // Get tokens
65
+ const access_token = params.get('access_token');
66
+ const refresh_token = params.get('refresh_token');
67
+ const user_id = params.get('user_id');
68
+ const email = params.get('email');
69
+ const expires_at = params.get('expires_at');
70
+ if (!access_token || !refresh_token || !user_id || !email) {
71
+ throw new Error('Missing required authentication parameters');
72
+ }
73
+ // Send success response
74
+ res.writeHead(200, { 'Content-Type': 'text/html' });
75
+ res.end(`
76
+ <!DOCTYPE html>
77
+ <html>
78
+ <head>
79
+ <title>Authentication Successful</title>
80
+ <style>
81
+ body {
82
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+ height: 100vh;
87
+ margin: 0;
88
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
89
+ }
90
+ .container {
91
+ background: white;
92
+ padding: 3rem;
93
+ border-radius: 1rem;
94
+ box-shadow: 0 20px 60px rgba(0,0,0,0.3);
95
+ text-align: center;
96
+ max-width: 400px;
97
+ }
98
+ .success-icon {
99
+ font-size: 4rem;
100
+ margin-bottom: 1rem;
101
+ }
102
+ h1 {
103
+ color: #2d3748;
104
+ margin: 0 0 1rem 0;
105
+ }
106
+ p {
107
+ color: #718096;
108
+ margin: 0 0 1.5rem 0;
109
+ }
110
+ .email {
111
+ background: #f7fafc;
112
+ padding: 0.75rem;
113
+ border-radius: 0.5rem;
114
+ color: #4a5568;
115
+ font-family: monospace;
116
+ margin-bottom: 1.5rem;
117
+ }
118
+ .close-message {
119
+ color: #a0aec0;
120
+ font-size: 0.875rem;
121
+ }
122
+ </style>
123
+ </head>
124
+ <body>
125
+ <div class="container">
126
+ <div class="success-icon">✓</div>
127
+ <h1>Authentication Successful!</h1>
128
+ <p>You have successfully logged in to DevCache.</p>
129
+ <div class="email">${email}</div>
130
+ <p class="close-message">You can close this window and return to your terminal.</p>
131
+ </div>
132
+ </body>
133
+ </html>
134
+ `);
135
+ // Resolve promise
136
+ if (this.resolve) {
137
+ this.resolve({
138
+ access_token,
139
+ refresh_token,
140
+ user_id,
141
+ email,
142
+ expires_at: expires_at ? parseInt(expires_at) : Date.now() / 1000 + 3600,
143
+ });
144
+ }
145
+ // Cleanup
146
+ setTimeout(() => this.cleanup(), 1000);
147
+ }
148
+ catch (error) {
149
+ // Send error response
150
+ res.writeHead(400, { 'Content-Type': 'text/html' });
151
+ res.end(`
152
+ <!DOCTYPE html>
153
+ <html>
154
+ <head>
155
+ <title>Authentication Failed</title>
156
+ <style>
157
+ body {
158
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ height: 100vh;
163
+ margin: 0;
164
+ background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
165
+ }
166
+ .container {
167
+ background: white;
168
+ padding: 3rem;
169
+ border-radius: 1rem;
170
+ box-shadow: 0 20px 60px rgba(0,0,0,0.3);
171
+ text-align: center;
172
+ max-width: 400px;
173
+ }
174
+ .error-icon {
175
+ font-size: 4rem;
176
+ margin-bottom: 1rem;
177
+ }
178
+ h1 {
179
+ color: #2d3748;
180
+ margin: 0 0 1rem 0;
181
+ }
182
+ p {
183
+ color: #718096;
184
+ }
185
+ </style>
186
+ </head>
187
+ <body>
188
+ <div class="container">
189
+ <div class="error-icon">✗</div>
190
+ <h1>Authentication Failed</h1>
191
+ <p>${error.message}</p>
192
+ <p>Please try again from your terminal.</p>
193
+ </div>
194
+ </body>
195
+ </html>
196
+ `);
197
+ // Reject promise
198
+ if (this.reject) {
199
+ this.reject(error);
200
+ }
201
+ // Cleanup
202
+ setTimeout(() => this.cleanup(), 1000);
203
+ }
204
+ }
205
+ /**
206
+ * Cleanup server
207
+ */
208
+ cleanup() {
209
+ if (this.server) {
210
+ this.server.close();
211
+ this.server = null;
212
+ }
213
+ this.resolve = null;
214
+ this.reject = null;
215
+ }
216
+ }
217
+ exports.OAuthFlow = OAuthFlow;
218
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/supabase/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { DevCacheSupabaseClient } from './client';
2
+ export interface ProjectFolder {
3
+ id: string;
4
+ name: string;
5
+ description?: string;
6
+ user_id: string;
7
+ created_at: string;
8
+ }
9
+ export interface ProjectFile {
10
+ id: string;
11
+ parent_id: string;
12
+ name: string;
13
+ content: string;
14
+ type: 'file';
15
+ user_id: string;
16
+ created_at: string;
17
+ }
18
+ export declare class StorageManager {
19
+ private supabaseClient;
20
+ constructor(supabaseClient: DevCacheSupabaseClient);
21
+ /**
22
+ * Create or update project folder structure
23
+ */
24
+ createProjectStructure(projectName: string, description?: string): Promise<ProjectFolder>;
25
+ /**
26
+ * Create category folder (general or tech)
27
+ */
28
+ createCategoryFolder(parentId: string, categoryName: string): Promise<ProjectFolder>;
29
+ /**
30
+ * Upload documentation file
31
+ */
32
+ uploadFile(parentId: string, fileName: string, content: string): Promise<ProjectFile>;
33
+ /**
34
+ * Upload complete documentation structure with project folder
35
+ */
36
+ uploadDocumentation(projectName: string, files: Array<{
37
+ category: 'general' | 'tech';
38
+ filename: string;
39
+ content: string;
40
+ }>, indexContent: string, description?: string): Promise<string>;
41
+ /**
42
+ * Get project URL for viewing in dashboard
43
+ */
44
+ getProjectUrl(projectId: string): string;
45
+ }
46
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/supabase/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,sBAAsB;IAE1D;;OAEG;IACG,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC;IAgDzB;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC;IA8CzB;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;IA+DvB;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,EACjF,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IAyBlB;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAIzC"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageManager = void 0;
4
+ const utils_1 = require("../utils");
5
+ class StorageManager {
6
+ constructor(supabaseClient) {
7
+ this.supabaseClient = supabaseClient;
8
+ }
9
+ /**
10
+ * Create or update project folder structure
11
+ */
12
+ async createProjectStructure(projectName, description) {
13
+ const client = this.supabaseClient.getClient();
14
+ const session = await this.supabaseClient.getSession();
15
+ if (!session) {
16
+ throw new Error('Not authenticated');
17
+ }
18
+ // Check if project folder already exists
19
+ const { data: existing, error: searchError } = await client
20
+ .from('project_items')
21
+ .select('*')
22
+ .eq('user_id', session.user_id)
23
+ .eq('name', projectName)
24
+ .eq('type', 'folder')
25
+ .is('parent_id', null)
26
+ .maybeSingle();
27
+ if (searchError) {
28
+ throw new Error(`Failed to search for existing project: ${searchError.message}`);
29
+ }
30
+ if (existing) {
31
+ utils_1.Logger.info(`Project "${projectName}" already exists, will update files`);
32
+ return existing;
33
+ }
34
+ // Create new project folder
35
+ const { data, error } = await client
36
+ .from('project_items')
37
+ .insert({
38
+ user_id: session.user_id,
39
+ name: projectName,
40
+ description: description || `DevCache documentation for ${projectName}`,
41
+ type: 'folder',
42
+ parent_id: null,
43
+ })
44
+ .select()
45
+ .single();
46
+ if (error) {
47
+ throw new Error(`Failed to create project folder: ${error.message}`);
48
+ }
49
+ utils_1.Logger.success(`Created project folder: ${projectName}`);
50
+ return data;
51
+ }
52
+ /**
53
+ * Create category folder (general or tech)
54
+ */
55
+ async createCategoryFolder(parentId, categoryName) {
56
+ const client = this.supabaseClient.getClient();
57
+ const session = await this.supabaseClient.getSession();
58
+ if (!session) {
59
+ throw new Error('Not authenticated');
60
+ }
61
+ // Check if category folder already exists
62
+ const { data: existing, error: searchError } = await client
63
+ .from('project_items')
64
+ .select('*')
65
+ .eq('user_id', session.user_id)
66
+ .eq('parent_id', parentId)
67
+ .eq('name', categoryName)
68
+ .eq('type', 'folder')
69
+ .maybeSingle();
70
+ if (searchError) {
71
+ throw new Error(`Failed to search for category folder: ${searchError.message}`);
72
+ }
73
+ if (existing) {
74
+ return existing;
75
+ }
76
+ // Create category folder
77
+ const { data, error } = await client
78
+ .from('project_items')
79
+ .insert({
80
+ user_id: session.user_id,
81
+ parent_id: parentId,
82
+ name: categoryName,
83
+ type: 'folder',
84
+ })
85
+ .select()
86
+ .single();
87
+ if (error) {
88
+ throw new Error(`Failed to create category folder: ${error.message}`);
89
+ }
90
+ utils_1.Logger.debug(`Created category folder: ${categoryName}`);
91
+ return data;
92
+ }
93
+ /**
94
+ * Upload documentation file
95
+ */
96
+ async uploadFile(parentId, fileName, content) {
97
+ const client = this.supabaseClient.getClient();
98
+ const session = await this.supabaseClient.getSession();
99
+ if (!session) {
100
+ throw new Error('Not authenticated');
101
+ }
102
+ // Check if file already exists
103
+ const { data: existing, error: searchError } = await client
104
+ .from('project_items')
105
+ .select('*')
106
+ .eq('user_id', session.user_id)
107
+ .eq('parent_id', parentId)
108
+ .eq('name', fileName)
109
+ .eq('type', 'file')
110
+ .maybeSingle();
111
+ if (searchError) {
112
+ throw new Error(`Failed to search for existing file: ${searchError.message}`);
113
+ }
114
+ if (existing) {
115
+ // Update existing file
116
+ const { data, error } = await client
117
+ .from('project_items')
118
+ .update({
119
+ content,
120
+ updated_at: new Date().toISOString(),
121
+ })
122
+ .eq('id', existing.id)
123
+ .select()
124
+ .single();
125
+ if (error) {
126
+ throw new Error(`Failed to update file: ${error.message}`);
127
+ }
128
+ utils_1.Logger.debug(`Updated file: ${fileName}`);
129
+ return data;
130
+ }
131
+ // Create new file
132
+ const { data, error } = await client
133
+ .from('project_items')
134
+ .insert({
135
+ user_id: session.user_id,
136
+ parent_id: parentId,
137
+ name: fileName,
138
+ content,
139
+ type: 'file',
140
+ })
141
+ .select()
142
+ .single();
143
+ if (error) {
144
+ throw new Error(`Failed to upload file: ${error.message}`);
145
+ }
146
+ utils_1.Logger.debug(`Uploaded file: ${fileName}`);
147
+ return data;
148
+ }
149
+ /**
150
+ * Upload complete documentation structure with project folder
151
+ */
152
+ async uploadDocumentation(projectName, files, indexContent, description) {
153
+ utils_1.Logger.info('Creating project structure...');
154
+ // Create main project folder
155
+ const projectFolder = await this.createProjectStructure(projectName, description);
156
+ // Upload index.md file
157
+ await this.uploadFile(projectFolder.id, 'index.md', indexContent);
158
+ utils_1.Logger.debug('Uploaded index.md');
159
+ // Create category folders
160
+ const generalFolder = await this.createCategoryFolder(projectFolder.id, 'general');
161
+ const techFolder = await this.createCategoryFolder(projectFolder.id, 'tech');
162
+ // Upload files
163
+ for (const file of files) {
164
+ const parentId = file.category === 'general' ? generalFolder.id : techFolder.id;
165
+ await this.uploadFile(parentId, file.filename, file.content);
166
+ }
167
+ utils_1.Logger.success(`Uploaded ${files.length + 1} files to project "${projectName}"`);
168
+ return projectFolder.id;
169
+ }
170
+ /**
171
+ * Get project URL for viewing in dashboard
172
+ */
173
+ getProjectUrl(projectId) {
174
+ const baseUrl = process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000';
175
+ return `${baseUrl}/dashboard/projects/${projectId}`;
176
+ }
177
+ }
178
+ exports.StorageManager = StorageManager;
179
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/supabase/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export interface ProjectContext {
2
+ rootPath: string;
3
+ config: any;
4
+ files: FileInfo[];
5
+ packageJson?: PackageJson;
6
+ readme?: string;
7
+ framework?: string;
8
+ }
9
+ export interface FileInfo {
10
+ path: string;
11
+ relativePath: string;
12
+ name: string;
13
+ extension: string;
14
+ size: number;
15
+ content?: string;
16
+ }
17
+ export interface PackageJson {
18
+ name: string;
19
+ version?: string;
20
+ description?: string;
21
+ main?: string;
22
+ scripts?: Record<string, string>;
23
+ dependencies?: Record<string, string>;
24
+ devDependencies?: Record<string, string>;
25
+ repository?: string | {
26
+ type: string;
27
+ url: string;
28
+ };
29
+ author?: string;
30
+ license?: string;
31
+ [key: string]: any;
32
+ }
33
+ export interface AnalysisOutput {
34
+ title: string;
35
+ sections: Section[];
36
+ metadata?: Record<string, any>;
37
+ }
38
+ export interface Section {
39
+ heading: string;
40
+ content: string;
41
+ subsections?: Section[];
42
+ }
43
+ export interface AnalysisResult {
44
+ analyzer: string;
45
+ outputPath: string;
46
+ category: 'general' | 'tech';
47
+ content: string;
48
+ success: boolean;
49
+ error?: string;
50
+ }
51
+ //# sourceMappingURL=analyzers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzers.d.ts","sourceRoot":"","sources":["../../src/types/analyzers.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=analyzers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzers.js","sourceRoot":"","sources":["../../src/types/analyzers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ export interface DevCacheConfig {
2
+ projectName: string;
3
+ description?: string;
4
+ version?: string;
5
+ outputDir: string;
6
+ templates: {
7
+ general: string[];
8
+ tech: string[];
9
+ };
10
+ supabase: {
11
+ enabled: boolean;
12
+ projectId: string | null;
13
+ };
14
+ analysis: {
15
+ includePatterns: string[];
16
+ excludePatterns: string[];
17
+ };
18
+ }
19
+ export interface ProjectMetadata {
20
+ name: string;
21
+ version?: string;
22
+ description?: string;
23
+ repository?: string;
24
+ author?: string;
25
+ license?: string;
26
+ }
27
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,QAAQ,EAAE;QACR,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './config';
2
+ export * from './analyzers';
3
+ export * from './templates';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,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("./config"), exports);
18
+ __exportStar(require("./analyzers"), exports);
19
+ __exportStar(require("./templates"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,8CAA4B"}
@@ -0,0 +1,18 @@
1
+ export interface Template {
2
+ name: string;
3
+ category: 'general' | 'tech';
4
+ outputFile: string;
5
+ description: string;
6
+ sections: TemplateSection[];
7
+ analyzer: string;
8
+ }
9
+ export interface TemplateSection {
10
+ heading: string;
11
+ prompt: string;
12
+ required: boolean;
13
+ subsections?: TemplateSection[];
14
+ }
15
+ export interface TemplateRegistry {
16
+ [key: string]: Template;
17
+ }
18
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { DevCacheConfig } from '../types';
2
+ export declare class ConfigManager {
3
+ private static CONFIG_FILE;
4
+ /**
5
+ * Read DevCache configuration
6
+ */
7
+ static readConfig(rootPath?: string): Promise<DevCacheConfig>;
8
+ /**
9
+ * Write DevCache configuration
10
+ */
11
+ static writeConfig(config: DevCacheConfig, rootPath?: string): Promise<void>;
12
+ /**
13
+ * Check if DevCache is initialized
14
+ */
15
+ static isInitialized(rootPath?: string): Promise<boolean>;
16
+ }
17
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAoB;IAE9C;;OAEG;WACU,UAAU,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;IAalF;;OAEG;WACU,WAAW,CACtB,MAAM,EAAE,cAAc,EACtB,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;WACU,aAAa,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;CAU/E"}