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.
Files changed (109) 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/cli/index.js +9 -0
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/orchestrator/FileSystemHandler.d.ts +35 -0
  41. package/dist/orchestrator/FileSystemHandler.d.ts.map +1 -0
  42. package/dist/orchestrator/FileSystemHandler.js +138 -0
  43. package/dist/orchestrator/FileSystemHandler.js.map +1 -0
  44. package/dist/orchestrator/Orchestrator.d.ts +31 -0
  45. package/dist/orchestrator/Orchestrator.d.ts.map +1 -0
  46. package/dist/orchestrator/Orchestrator.js +141 -0
  47. package/dist/orchestrator/Orchestrator.js.map +1 -0
  48. package/dist/orchestrator/TemplateManager.d.ts +35 -0
  49. package/dist/orchestrator/TemplateManager.d.ts.map +1 -0
  50. package/dist/orchestrator/TemplateManager.js +116 -0
  51. package/dist/orchestrator/TemplateManager.js.map +1 -0
  52. package/dist/orchestrator/index.d.ts +4 -0
  53. package/dist/orchestrator/index.d.ts.map +1 -0
  54. package/dist/orchestrator/index.js +20 -0
  55. package/dist/orchestrator/index.js.map +1 -0
  56. package/dist/supabase/client.d.ts +54 -0
  57. package/dist/supabase/client.d.ts.map +1 -0
  58. package/dist/supabase/client.js +181 -0
  59. package/dist/supabase/client.js.map +1 -0
  60. package/dist/supabase/index.d.ts +3 -0
  61. package/dist/supabase/index.d.ts.map +1 -0
  62. package/dist/supabase/index.js +19 -0
  63. package/dist/supabase/index.js.map +1 -0
  64. package/dist/supabase/oauth.d.ts +25 -0
  65. package/dist/supabase/oauth.d.ts.map +1 -0
  66. package/dist/supabase/oauth.js +218 -0
  67. package/dist/supabase/oauth.js.map +1 -0
  68. package/dist/supabase/storage.d.ts +46 -0
  69. package/dist/supabase/storage.d.ts.map +1 -0
  70. package/dist/supabase/storage.js +179 -0
  71. package/dist/supabase/storage.js.map +1 -0
  72. package/dist/types/analyzers.d.ts +51 -0
  73. package/dist/types/analyzers.d.ts.map +1 -0
  74. package/dist/types/analyzers.js +3 -0
  75. package/dist/types/analyzers.js.map +1 -0
  76. package/dist/types/config.d.ts +27 -0
  77. package/dist/types/config.d.ts.map +1 -0
  78. package/dist/types/config.js +3 -0
  79. package/dist/types/config.js.map +1 -0
  80. package/dist/types/index.d.ts +4 -0
  81. package/dist/types/index.d.ts.map +1 -0
  82. package/dist/types/index.js +20 -0
  83. package/dist/types/index.js.map +1 -0
  84. package/dist/types/templates.d.ts +18 -0
  85. package/dist/types/templates.d.ts.map +1 -0
  86. package/dist/types/templates.js +3 -0
  87. package/dist/types/templates.js.map +1 -0
  88. package/dist/utils/config.d.ts +17 -0
  89. package/dist/utils/config.d.ts.map +1 -0
  90. package/dist/utils/config.js +46 -0
  91. package/dist/utils/config.js.map +1 -0
  92. package/dist/utils/fileParser.d.ts +28 -0
  93. package/dist/utils/fileParser.d.ts.map +1 -0
  94. package/dist/utils/fileParser.js +111 -0
  95. package/dist/utils/fileParser.js.map +1 -0
  96. package/dist/utils/index.d.ts +4 -0
  97. package/dist/utils/index.d.ts.map +1 -0
  98. package/dist/utils/index.js +20 -0
  99. package/dist/utils/index.js.map +1 -0
  100. package/dist/utils/logger.d.ts +9 -0
  101. package/dist/utils/logger.d.ts.map +1 -0
  102. package/dist/utils/logger.js +31 -0
  103. package/dist/utils/logger.js.map +1 -0
  104. package/package.json +13 -12
  105. package/templates/general/project-impact.yaml +34 -0
  106. package/templates/general/project-overview.yaml +34 -0
  107. package/templates/tech/architecture-project.yaml +42 -0
  108. package/templates/tech/features.yaml +38 -0
  109. package/templates/tech/stack-project.yaml +42 -0
@@ -0,0 +1,141 @@
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.Orchestrator = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const TemplateManager_1 = require("./TemplateManager");
9
+ const FileSystemHandler_1 = require("./FileSystemHandler");
10
+ const utils_1 = require("../utils");
11
+ class Orchestrator {
12
+ constructor(rootPath = process.cwd()) {
13
+ this.analyzers = new Map();
14
+ this.rootPath = rootPath;
15
+ this.templateManager = new TemplateManager_1.TemplateManager();
16
+ this.fsHandler = new FileSystemHandler_1.FileSystemHandler();
17
+ this.config = {}; // Will be loaded in initialize()
18
+ }
19
+ /**
20
+ * Initialize orchestrator
21
+ */
22
+ async initialize() {
23
+ utils_1.Logger.debug('Initializing orchestrator...');
24
+ // Load configuration
25
+ this.config = await utils_1.ConfigManager.readConfig(this.rootPath);
26
+ // Load templates
27
+ await this.templateManager.loadTemplates();
28
+ utils_1.Logger.debug('Orchestrator initialized');
29
+ }
30
+ /**
31
+ * Register an analyzer
32
+ */
33
+ registerAnalyzer(analyzer) {
34
+ this.analyzers.set(analyzer.name, analyzer);
35
+ utils_1.Logger.debug(`Registered analyzer: ${analyzer.name}`);
36
+ }
37
+ /**
38
+ * Main analysis workflow
39
+ */
40
+ async analyze() {
41
+ utils_1.Logger.section('🔍 Analyzing Project');
42
+ // Step 1: Scan project
43
+ const context = await this.scanProject();
44
+ utils_1.Logger.success(`Scanned ${context.files.length} files`);
45
+ // Step 2: Create output directory with project name
46
+ const outputPath = path_1.default.join(this.rootPath, this.config.outputDir);
47
+ await this.fsHandler.createOutputDirectory(outputPath, this.config.projectName);
48
+ // Step 3: Run analyzers
49
+ const results = [];
50
+ const fileDescriptions = [];
51
+ for (const [name, analyzer] of this.analyzers) {
52
+ try {
53
+ utils_1.Logger.info(`Running ${name}...`);
54
+ const output = await analyzer.analyze(context);
55
+ const template = this.templateManager.getTemplate(name);
56
+ if (!template) {
57
+ throw new Error(`Template not found for analyzer: ${name}`);
58
+ }
59
+ // Render markdown
60
+ const markdown = this.templateManager.renderTemplate(template, output);
61
+ // Write to file (now includes project name in path)
62
+ await this.fsHandler.writeDocumentation(outputPath, this.config.projectName, analyzer.category, template.outputFile, markdown);
63
+ // Store file description for index
64
+ fileDescriptions.push({
65
+ category: analyzer.category,
66
+ filename: template.outputFile,
67
+ description: template.description,
68
+ });
69
+ results.push({
70
+ analyzer: name,
71
+ outputPath: path_1.default.join(outputPath, this.config.projectName, analyzer.category, template.outputFile),
72
+ category: analyzer.category,
73
+ content: markdown,
74
+ success: true,
75
+ });
76
+ utils_1.Logger.success(`Generated ${template.outputFile}`);
77
+ }
78
+ catch (error) {
79
+ utils_1.Logger.error(`Failed to run ${name}: ${error}`);
80
+ results.push({
81
+ analyzer: name,
82
+ outputPath: '',
83
+ category: analyzer.category,
84
+ content: '',
85
+ success: false,
86
+ error: String(error),
87
+ });
88
+ }
89
+ }
90
+ // Step 4: Create index.md file
91
+ const projectDescription = this.config.description ||
92
+ `Comprehensive documentation for ${this.config.projectName} project.`;
93
+ await this.fsHandler.writeIndexFile(outputPath, this.config.projectName, projectDescription, fileDescriptions);
94
+ utils_1.Logger.success('Created index.md');
95
+ return results;
96
+ }
97
+ /**
98
+ * Scan project and build context
99
+ */
100
+ async scanProject() {
101
+ utils_1.Logger.debug('Scanning project structure...');
102
+ // Scan files
103
+ const files = await utils_1.FileParser.scanProject(this.rootPath, this.config.analysis.includePatterns, this.config.analysis.excludePatterns);
104
+ // Read package.json
105
+ const packageJson = await utils_1.FileParser.readPackageJson(this.rootPath);
106
+ // Read README
107
+ const readme = await utils_1.FileParser.readReadme(this.rootPath);
108
+ // Detect framework
109
+ const framework = utils_1.FileParser.detectFramework(packageJson);
110
+ return {
111
+ rootPath: this.rootPath,
112
+ config: this.config,
113
+ files,
114
+ packageJson: packageJson || undefined,
115
+ readme: readme || undefined,
116
+ framework,
117
+ };
118
+ }
119
+ /**
120
+ * Get analysis summary
121
+ */
122
+ getSummary(results) {
123
+ const successful = results.filter((r) => r.success).length;
124
+ const failed = results.filter((r) => !r.success).length;
125
+ let summary = '\n📊 Analysis Summary\n\n';
126
+ summary += `✓ Successful: ${successful}\n`;
127
+ summary += `✗ Failed: ${failed}\n\n`;
128
+ summary += 'Generated files:\n';
129
+ for (const result of results) {
130
+ if (result.success) {
131
+ summary += ` ✓ ${result.outputPath}\n`;
132
+ }
133
+ else {
134
+ summary += ` ✗ ${result.analyzer} - ${result.error}\n`;
135
+ }
136
+ }
137
+ return summary;
138
+ }
139
+ }
140
+ exports.Orchestrator = Orchestrator;
141
+ //# sourceMappingURL=Orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator/Orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Template } from '../types';
2
+ export declare class TemplateManager {
3
+ private templates;
4
+ private templatesPath;
5
+ constructor(templatesPath?: string);
6
+ /**
7
+ * Load all template definitions
8
+ */
9
+ loadTemplates(): Promise<void>;
10
+ /**
11
+ * Get template by name
12
+ */
13
+ getTemplate(name: string): Template | undefined;
14
+ /**
15
+ * Get all templates
16
+ */
17
+ getAllTemplates(): Template[];
18
+ /**
19
+ * Get templates by category
20
+ */
21
+ getTemplatesByCategory(category: 'general' | 'tech'): Template[];
22
+ /**
23
+ * Render template to markdown
24
+ */
25
+ renderTemplate(template: Template, data: any): string;
26
+ /**
27
+ * Render a section recursively
28
+ */
29
+ private renderSection;
30
+ /**
31
+ * Validate template structure
32
+ */
33
+ validateTemplate(template: Template): boolean;
34
+ }
35
+ //# sourceMappingURL=TemplateManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/orchestrator/TemplateManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAoB,MAAM,UAAU,CAAC;AAGtD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,aAAa,CAAS;gBAElB,aAAa,CAAC,EAAE,MAAM;IAKlC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BpC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI/C;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;IAI7B;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,EAAE;IAIhE;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM;IAcrD;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;CAe9C"}
@@ -0,0 +1,116 @@
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.TemplateManager = void 0;
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const yaml_1 = __importDefault(require("yaml"));
10
+ const utils_1 = require("../utils");
11
+ class TemplateManager {
12
+ constructor(templatesPath) {
13
+ this.templates = {};
14
+ // Default to templates directory in package
15
+ this.templatesPath = templatesPath || path_1.default.join(__dirname, '../../templates');
16
+ }
17
+ /**
18
+ * Load all template definitions
19
+ */
20
+ async loadTemplates() {
21
+ try {
22
+ const categories = ['general', 'tech'];
23
+ for (const category of categories) {
24
+ const categoryPath = path_1.default.join(this.templatesPath, category);
25
+ try {
26
+ const files = await promises_1.default.readdir(categoryPath);
27
+ for (const file of files) {
28
+ if (file.endsWith('.yaml') || file.endsWith('.yml')) {
29
+ const filePath = path_1.default.join(categoryPath, file);
30
+ const content = await promises_1.default.readFile(filePath, 'utf-8');
31
+ const template = yaml_1.default.parse(content);
32
+ this.templates[template.name] = template;
33
+ utils_1.Logger.debug(`Loaded template: ${template.name}`);
34
+ }
35
+ }
36
+ }
37
+ catch (error) {
38
+ utils_1.Logger.warn(`Could not load templates from ${categoryPath}`);
39
+ }
40
+ }
41
+ utils_1.Logger.debug(`Loaded ${Object.keys(this.templates).length} templates`);
42
+ }
43
+ catch (error) {
44
+ throw new Error(`Failed to load templates: ${error}`);
45
+ }
46
+ }
47
+ /**
48
+ * Get template by name
49
+ */
50
+ getTemplate(name) {
51
+ return this.templates[name];
52
+ }
53
+ /**
54
+ * Get all templates
55
+ */
56
+ getAllTemplates() {
57
+ return Object.values(this.templates);
58
+ }
59
+ /**
60
+ * Get templates by category
61
+ */
62
+ getTemplatesByCategory(category) {
63
+ return Object.values(this.templates).filter((t) => t.category === category);
64
+ }
65
+ /**
66
+ * Render template to markdown
67
+ */
68
+ renderTemplate(template, data) {
69
+ let markdown = `# ${data.title || template.description}\n\n`;
70
+ for (const section of template.sections) {
71
+ markdown += this.renderSection(section, data, 2);
72
+ }
73
+ // Add metadata footer
74
+ markdown += '\n---\n\n';
75
+ markdown += `*Generated by DevCache on ${new Date().toISOString()}*\n`;
76
+ return markdown;
77
+ }
78
+ /**
79
+ * Render a section recursively
80
+ */
81
+ renderSection(section, data, level) {
82
+ let markdown = '';
83
+ const heading = '#'.repeat(level);
84
+ // Add section heading
85
+ markdown += `${heading} ${section.heading}\n\n`;
86
+ // Add section content if available
87
+ const sectionData = data.sections?.find((s) => s.heading === section.heading);
88
+ if (sectionData?.content) {
89
+ markdown += `${sectionData.content}\n\n`;
90
+ }
91
+ // Render subsections
92
+ if (section.subsections) {
93
+ for (const subsection of section.subsections) {
94
+ markdown += this.renderSection(subsection, data, level + 1);
95
+ }
96
+ }
97
+ return markdown;
98
+ }
99
+ /**
100
+ * Validate template structure
101
+ */
102
+ validateTemplate(template) {
103
+ if (!template.name || !template.category || !template.outputFile) {
104
+ return false;
105
+ }
106
+ if (!['general', 'tech'].includes(template.category)) {
107
+ return false;
108
+ }
109
+ if (!template.sections || template.sections.length === 0) {
110
+ return false;
111
+ }
112
+ return true;
113
+ }
114
+ }
115
+ exports.TemplateManager = TemplateManager;
116
+ //# sourceMappingURL=TemplateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/orchestrator/TemplateManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './Orchestrator';
2
+ export * from './TemplateManager';
3
+ export * from './FileSystemHandler';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,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("./Orchestrator"), exports);
18
+ __exportStar(require("./TemplateManager"), exports);
19
+ __exportStar(require("./FileSystemHandler"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,oDAAkC;AAClC,sDAAoC"}
@@ -0,0 +1,54 @@
1
+ import { SupabaseClient } from '@supabase/supabase-js';
2
+ export interface SessionData {
3
+ access_token: string;
4
+ refresh_token: string;
5
+ user_id: string;
6
+ email: string;
7
+ expires_at: number;
8
+ }
9
+ export declare class DevCacheSupabaseClient {
10
+ private client;
11
+ private session;
12
+ /**
13
+ * Initialize Supabase client with environment variables
14
+ */
15
+ initialize(): Promise<void>;
16
+ /**
17
+ * Authenticate user with email and password
18
+ */
19
+ login(email: string, password: string): Promise<SessionData>;
20
+ /**
21
+ * Get current session
22
+ */
23
+ getSession(): Promise<SessionData | null>;
24
+ /**
25
+ * Refresh session token
26
+ */
27
+ private refreshSession;
28
+ /**
29
+ * Save OAuth session (public method for OAuth flow)
30
+ */
31
+ saveOAuthSession(session: SessionData): Promise<void>;
32
+ /**
33
+ * Save session to file
34
+ */
35
+ private saveSession;
36
+ /**
37
+ * Load session from file
38
+ */
39
+ private loadSession;
40
+ /**
41
+ * Clear session
42
+ */
43
+ clearSession(): Promise<void>;
44
+ /**
45
+ * Get Supabase client
46
+ */
47
+ getClient(): SupabaseClient;
48
+ /**
49
+ * Check if user is authenticated
50
+ */
51
+ isAuthenticated(): boolean;
52
+ }
53
+ export declare function getSupabaseClient(): DevCacheSupabaseClient;
54
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/supabase/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOrE,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,OAAO,CAA4B;IAE3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgClE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAa/C;;OAEG;YACW,cAAc;IA2B5B;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D;;OAEG;YACW,WAAW;IAQzB;;OAEG;YACW,WAAW;IAkBzB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC;;OAEG;IACH,SAAS,IAAI,cAAc;IAQ3B;;OAEG;IACH,eAAe,IAAI,OAAO;CAG3B;AAKD,wBAAgB,iBAAiB,IAAI,sBAAsB,CAK1D"}
@@ -0,0 +1,181 @@
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.DevCacheSupabaseClient = void 0;
7
+ exports.getSupabaseClient = getSupabaseClient;
8
+ const supabase_js_1 = require("@supabase/supabase-js");
9
+ const promises_1 = __importDefault(require("fs/promises"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const os_1 = __importDefault(require("os"));
12
+ const SESSION_FILE = path_1.default.join(os_1.default.homedir(), '.devcache', 'session.json');
13
+ class DevCacheSupabaseClient {
14
+ constructor() {
15
+ this.client = null;
16
+ this.session = null;
17
+ }
18
+ /**
19
+ * Initialize Supabase client with environment variables
20
+ */
21
+ async initialize() {
22
+ const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL;
23
+ const supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY;
24
+ if (!supabaseUrl || !supabaseKey) {
25
+ throw new Error('Supabase credentials not found. Please set NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY environment variables.');
26
+ }
27
+ this.client = (0, supabase_js_1.createClient)(supabaseUrl, supabaseKey);
28
+ // Try to load existing session
29
+ await this.loadSession();
30
+ }
31
+ /**
32
+ * Authenticate user with email and password
33
+ */
34
+ async login(email, password) {
35
+ if (!this.client) {
36
+ throw new Error('Supabase client not initialized');
37
+ }
38
+ const { data, error } = await this.client.auth.signInWithPassword({
39
+ email,
40
+ password,
41
+ });
42
+ if (error) {
43
+ throw new Error(`Authentication failed: ${error.message}`);
44
+ }
45
+ if (!data.session || !data.user) {
46
+ throw new Error('No session data returned from authentication');
47
+ }
48
+ // Store session
49
+ this.session = {
50
+ access_token: data.session.access_token,
51
+ refresh_token: data.session.refresh_token,
52
+ user_id: data.user.id,
53
+ email: data.user.email,
54
+ expires_at: data.session.expires_at || 0,
55
+ };
56
+ await this.saveSession();
57
+ return this.session;
58
+ }
59
+ /**
60
+ * Get current session
61
+ */
62
+ async getSession() {
63
+ if (!this.session) {
64
+ await this.loadSession();
65
+ }
66
+ // Check if session is expired
67
+ if (this.session && this.session.expires_at < Date.now() / 1000) {
68
+ await this.refreshSession();
69
+ }
70
+ return this.session;
71
+ }
72
+ /**
73
+ * Refresh session token
74
+ */
75
+ async refreshSession() {
76
+ if (!this.client || !this.session) {
77
+ throw new Error('No session to refresh');
78
+ }
79
+ const { data, error } = await this.client.auth.refreshSession({
80
+ refresh_token: this.session.refresh_token,
81
+ });
82
+ if (error || !data.session) {
83
+ // Session expired, clear it
84
+ this.session = null;
85
+ await this.clearSession();
86
+ throw new Error('Session expired. Please login again.');
87
+ }
88
+ this.session = {
89
+ access_token: data.session.access_token,
90
+ refresh_token: data.session.refresh_token,
91
+ user_id: data.session.user.id,
92
+ email: data.session.user.email,
93
+ expires_at: data.session.expires_at || 0,
94
+ };
95
+ await this.saveSession();
96
+ }
97
+ /**
98
+ * Save OAuth session (public method for OAuth flow)
99
+ */
100
+ async saveOAuthSession(session) {
101
+ this.session = session;
102
+ // Set session in Supabase client
103
+ if (this.client) {
104
+ await this.client.auth.setSession({
105
+ access_token: session.access_token,
106
+ refresh_token: session.refresh_token,
107
+ });
108
+ }
109
+ await this.saveSession();
110
+ }
111
+ /**
112
+ * Save session to file
113
+ */
114
+ async saveSession() {
115
+ if (!this.session)
116
+ return;
117
+ const sessionDir = path_1.default.dirname(SESSION_FILE);
118
+ await promises_1.default.mkdir(sessionDir, { recursive: true });
119
+ await promises_1.default.writeFile(SESSION_FILE, JSON.stringify(this.session, null, 2), 'utf-8');
120
+ }
121
+ /**
122
+ * Load session from file
123
+ */
124
+ async loadSession() {
125
+ try {
126
+ const content = await promises_1.default.readFile(SESSION_FILE, 'utf-8');
127
+ this.session = JSON.parse(content);
128
+ // Set session in Supabase client
129
+ if (this.client && this.session) {
130
+ await this.client.auth.setSession({
131
+ access_token: this.session.access_token,
132
+ refresh_token: this.session.refresh_token,
133
+ });
134
+ }
135
+ }
136
+ catch (error) {
137
+ // Session file doesn't exist or is invalid
138
+ this.session = null;
139
+ }
140
+ }
141
+ /**
142
+ * Clear session
143
+ */
144
+ async clearSession() {
145
+ this.session = null;
146
+ try {
147
+ await promises_1.default.unlink(SESSION_FILE);
148
+ }
149
+ catch (error) {
150
+ // File doesn't exist, ignore
151
+ }
152
+ if (this.client) {
153
+ await this.client.auth.signOut();
154
+ }
155
+ }
156
+ /**
157
+ * Get Supabase client
158
+ */
159
+ getClient() {
160
+ if (!this.client) {
161
+ throw new Error('Supabase client not initialized. Call initialize() first.');
162
+ }
163
+ return this.client;
164
+ }
165
+ /**
166
+ * Check if user is authenticated
167
+ */
168
+ isAuthenticated() {
169
+ return this.session !== null;
170
+ }
171
+ }
172
+ exports.DevCacheSupabaseClient = DevCacheSupabaseClient;
173
+ // Singleton instance
174
+ let instance = null;
175
+ function getSupabaseClient() {
176
+ if (!instance) {
177
+ instance = new DevCacheSupabaseClient();
178
+ }
179
+ return instance;
180
+ }
181
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/supabase/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './client';
2
+ export * from './storage';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/supabase/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,19 @@
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("./client"), exports);
18
+ __exportStar(require("./storage"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/supabase/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B"}
@@ -0,0 +1,25 @@
1
+ export interface OAuthResult {
2
+ access_token: string;
3
+ refresh_token: string;
4
+ user_id: string;
5
+ email: string;
6
+ expires_at: number;
7
+ }
8
+ export declare class OAuthFlow {
9
+ private server;
10
+ private resolve;
11
+ private reject;
12
+ /**
13
+ * Start OAuth flow
14
+ */
15
+ startFlow(appUrl: string): Promise<OAuthResult>;
16
+ /**
17
+ * Handle callback request
18
+ */
19
+ private handleRequest;
20
+ /**
21
+ * Cleanup server
22
+ */
23
+ private cleanup;
24
+ }
25
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/supabase/oauth.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,MAAM,CAAyC;IAEvD;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgCrD;;OAEG;IACH,OAAO,CAAC,aAAa;IAqKrB;;OAEG;IACH,OAAO,CAAC,OAAO;CAQhB"}