lettactl 0.2.1 → 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 (40) hide show
  1. package/README.md +57 -0
  2. package/dist/commands/apply.d.ts.map +1 -1
  3. package/dist/commands/apply.js +20 -4
  4. package/dist/commands/apply.js.map +1 -1
  5. package/dist/lib/agent-manager.d.ts.map +1 -1
  6. package/dist/lib/agent-manager.js +19 -6
  7. package/dist/lib/agent-manager.js.map +1 -1
  8. package/dist/lib/block-manager.d.ts +4 -0
  9. package/dist/lib/block-manager.d.ts.map +1 -1
  10. package/dist/lib/block-manager.js +8 -0
  11. package/dist/lib/block-manager.js.map +1 -1
  12. package/dist/lib/bucket-config-validator.d.ts +20 -0
  13. package/dist/lib/bucket-config-validator.d.ts.map +1 -0
  14. package/dist/lib/bucket-config-validator.js +95 -0
  15. package/dist/lib/bucket-config-validator.js.map +1 -0
  16. package/dist/lib/config-validators.d.ts +59 -0
  17. package/dist/lib/config-validators.d.ts.map +1 -0
  18. package/dist/lib/config-validators.js +275 -0
  19. package/dist/lib/config-validators.js.map +1 -0
  20. package/dist/lib/diff-engine.d.ts +5 -0
  21. package/dist/lib/diff-engine.d.ts.map +1 -1
  22. package/dist/lib/diff-engine.js +47 -14
  23. package/dist/lib/diff-engine.js.map +1 -1
  24. package/dist/lib/file-content-tracker.d.ts +5 -2
  25. package/dist/lib/file-content-tracker.d.ts.map +1 -1
  26. package/dist/lib/file-content-tracker.js +20 -2
  27. package/dist/lib/file-content-tracker.js.map +1 -1
  28. package/dist/lib/fleet-parser.d.ts +7 -1
  29. package/dist/lib/fleet-parser.d.ts.map +1 -1
  30. package/dist/lib/fleet-parser.js +24 -3
  31. package/dist/lib/fleet-parser.js.map +1 -1
  32. package/dist/lib/storage-backend.d.ts +47 -0
  33. package/dist/lib/storage-backend.d.ts.map +1 -0
  34. package/dist/lib/storage-backend.js +280 -0
  35. package/dist/lib/storage-backend.js.map +1 -0
  36. package/dist/lib/storage-error-handler.d.ts +44 -0
  37. package/dist/lib/storage-error-handler.d.ts.map +1 -0
  38. package/dist/lib/storage-error-handler.js +176 -0
  39. package/dist/lib/storage-error-handler.js.map +1 -0
  40. package/package.json +3 -1
@@ -37,9 +37,17 @@ exports.FleetParser = void 0;
37
37
  const yaml = __importStar(require("js-yaml"));
38
38
  const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
+ const storage_backend_1 = require("./storage-backend");
41
+ const config_validators_1 = require("./config-validators");
40
42
  class FleetParser {
41
- constructor(configPath) {
43
+ constructor(configPath, options = {}) {
42
44
  this.basePath = path.dirname(configPath);
45
+ this.storageManager = new storage_backend_1.StorageBackendManager({
46
+ supabaseBackend: options.supabaseBackend
47
+ });
48
+ }
49
+ get storageBackend() {
50
+ return this.storageManager;
43
51
  }
44
52
  async parseFleetConfig(configPath) {
45
53
  if (!fs.existsSync(configPath)) {
@@ -47,6 +55,8 @@ class FleetParser {
47
55
  }
48
56
  const configContent = fs.readFileSync(configPath, 'utf8');
49
57
  const config = yaml.load(configContent);
58
+ // Validate configuration before processing
59
+ config_validators_1.FleetConfigValidator.validate(config);
50
60
  // Auto-expand folders that reference "files" directory
51
61
  this.expandFileFolders(config);
52
62
  // Auto-discover tools from tools directory
@@ -71,9 +81,15 @@ class FleetParser {
71
81
  }
72
82
  async resolveBlockContent(block) {
73
83
  if (block.from_file) {
84
+ // Read from local filesystem
74
85
  const filePath = path.resolve(this.basePath, block.from_file);
75
86
  block.value = fs.readFileSync(filePath, 'utf8');
76
87
  }
88
+ else if (block.from_bucket) {
89
+ // Read from cloud bucket using new structure
90
+ const bucketConfig = block.from_bucket;
91
+ block.value = await this.storageManager.readFromBucket(bucketConfig);
92
+ }
77
93
  else if (!block.value) {
78
94
  // Smart default: look for memory-blocks/{name}.md
79
95
  const defaultPath = path.resolve(this.basePath, 'memory-blocks', `${block.name}.md`);
@@ -82,7 +98,7 @@ class FleetParser {
82
98
  console.log(`Auto-loaded memory block: ${block.name} from memory-blocks/${block.name}.md`);
83
99
  }
84
100
  else {
85
- throw new Error(`Memory block '${block.name}' has no value or from_file specified, and default file memory-blocks/${block.name}.md not found`);
101
+ throw new Error(`Memory block '${block.name}' has no value, from_file, or from_bucket specified, and default file memory-blocks/${block.name}.md not found`);
86
102
  }
87
103
  }
88
104
  }
@@ -98,11 +114,16 @@ class FleetParser {
98
114
  const filePath = path.resolve(this.basePath, prompt.from_file);
99
115
  userPrompt = fs.readFileSync(filePath, 'utf8').trim();
100
116
  }
117
+ else if (prompt.from_bucket) {
118
+ // Read from cloud bucket using new structure
119
+ const bucketConfig = prompt.from_bucket;
120
+ userPrompt = (await this.storageManager.readFromBucket(bucketConfig)).trim();
121
+ }
101
122
  else if (prompt.value) {
102
123
  userPrompt = prompt.value.trim();
103
124
  }
104
125
  else {
105
- throw new Error(`System prompt has no value or from_file specified`);
126
+ throw new Error(`System prompt has no value, from_file, or from_bucket specified`);
106
127
  }
107
128
  // Concatenate base instructions with user prompt
108
129
  if (baseInstructions) {
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-parser.js","sourceRoot":"","sources":["../../src/lib/fleet-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-parser.js","sourceRoot":"","sources":["../../src/lib/fleet-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Storage backend interface for lettactl
3
+ * Allows reading content from various sources (filesystem, cloud storage, etc.)
4
+ */
5
+ export interface StorageBackend {
6
+ readContent(uri: string): Promise<string>;
7
+ listFiles(pattern: string): Promise<string[]>;
8
+ canHandle(uri: string): boolean;
9
+ }
10
+ export interface BucketConfig {
11
+ provider: 'supabase';
12
+ bucket: string;
13
+ path: string;
14
+ }
15
+ /**
16
+ * Storage backend manager that routes requests to appropriate backends
17
+ */
18
+ export declare class StorageBackendManager {
19
+ private backends;
20
+ private supabaseBackend?;
21
+ constructor(options?: {
22
+ supabaseBackend?: SupabaseStorageBackend;
23
+ });
24
+ readContent(uri: string): Promise<string>;
25
+ listFiles(pattern: string): Promise<string[]>;
26
+ /**
27
+ * Convert bucket config to URI for backend routing
28
+ */
29
+ readFromBucket(config: BucketConfig): Promise<string>;
30
+ private validateBucketConfig;
31
+ }
32
+ export declare class FileSystemBackend implements StorageBackend {
33
+ private basePath;
34
+ constructor(basePath?: string);
35
+ canHandle(uri: string): boolean;
36
+ readContent(uri: string): Promise<string>;
37
+ listFiles(pattern: string): Promise<string[]>;
38
+ private resolvePath;
39
+ }
40
+ export declare class SupabaseStorageBackend {
41
+ private supabase;
42
+ constructor();
43
+ private validateEnvironment;
44
+ readFromBucket(bucket: string, filePath: string): Promise<string>;
45
+ listFiles(bucket: string, pathPrefix?: string): Promise<string[]>;
46
+ }
47
+ //# sourceMappingURL=storage-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-backend.d.ts","sourceRoot":"","sources":["../../src/lib/storage-backend.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAyB;gBAErC,OAAO,GAAE;QAAE,eAAe,CAAC,EAAE,sBAAsB,CAAA;KAAO;IAQhE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQnD;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB3D,OAAO,CAAC,oBAAoB;CA6C7B;AASD,qBAAa,iBAAkB,YAAW,cAAc;IAC1C,OAAO,CAAC,QAAQ;gBAAR,QAAQ,GAAE,MAAW;IAEzC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKnD,OAAO,CAAC,WAAW;CAKpB;AAQD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAK;;IAerB,OAAO,CAAC,mBAAmB;IAwCrB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmEjE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA+B5E"}
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ /**
3
+ * Storage backend interface for lettactl
4
+ * Allows reading content from various sources (filesystem, cloud storage, etc.)
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.SupabaseStorageBackend = exports.FileSystemBackend = exports.StorageBackendManager = void 0;
41
+ /**
42
+ * Storage backend manager that routes requests to appropriate backends
43
+ */
44
+ class StorageBackendManager {
45
+ constructor(options = {}) {
46
+ this.backends = [];
47
+ // Always include filesystem backend
48
+ this.backends.push(new FileSystemBackend());
49
+ // Store Supabase backend separately since it has different interface
50
+ this.supabaseBackend = options.supabaseBackend;
51
+ }
52
+ async readContent(uri) {
53
+ const backend = this.backends.find(b => b.canHandle(uri));
54
+ if (!backend) {
55
+ throw new Error(`No backend available for URI: ${uri}`);
56
+ }
57
+ return backend.readContent(uri);
58
+ }
59
+ async listFiles(pattern) {
60
+ const backend = this.backends.find(b => b.canHandle(pattern));
61
+ if (!backend) {
62
+ throw new Error(`No backend available for pattern: ${pattern}`);
63
+ }
64
+ return backend.listFiles(pattern);
65
+ }
66
+ /**
67
+ * Convert bucket config to URI for backend routing
68
+ */
69
+ async readFromBucket(config) {
70
+ // Validate bucket config structure
71
+ this.validateBucketConfig(config);
72
+ if (config.provider === 'supabase') {
73
+ if (!this.supabaseBackend) {
74
+ throw new Error('Supabase backend not configured');
75
+ }
76
+ return this.supabaseBackend.readFromBucket(config.bucket, config.path);
77
+ }
78
+ // Check for common typos
79
+ const provider = String(config.provider).toLowerCase();
80
+ if (provider.includes('supab') || provider.includes('suapb')) {
81
+ throw new Error(`Provider '${config.provider}' not recognized. Did you mean 'supabase'?`);
82
+ }
83
+ // TODO: Add s3, gcs support
84
+ throw new Error(`Provider '${config.provider}' not yet supported. Supported: supabase. Coming soon: s3, gcs`);
85
+ }
86
+ validateBucketConfig(config) {
87
+ if (!config || typeof config !== 'object') {
88
+ throw new Error('Invalid from_bucket configuration. Expected object with provider, bucket, and path fields.\n' +
89
+ 'Example:\n' +
90
+ 'from_bucket:\n' +
91
+ ' provider: supabase\n' +
92
+ ' bucket: my-bucket\n' +
93
+ ' path: file.md');
94
+ }
95
+ const requiredFields = ['provider', 'bucket', 'path'];
96
+ const missing = requiredFields.filter(field => !(field in config));
97
+ if (missing.length > 0) {
98
+ throw new Error(`Missing required fields in from_bucket config: ${missing.join(', ')}\n` +
99
+ 'Required fields: provider, bucket, path\n' +
100
+ 'Example:\n' +
101
+ 'from_bucket:\n' +
102
+ ' provider: supabase\n' +
103
+ ' bucket: my-bucket\n' +
104
+ ' path: file.md');
105
+ }
106
+ // Check for empty/null values
107
+ const emptyFields = requiredFields.filter(field => {
108
+ const value = config[field];
109
+ return value === null || value === undefined || value === '' || (typeof value === 'string' && value.trim() === '');
110
+ });
111
+ if (emptyFields.length > 0) {
112
+ throw new Error(`Empty values not allowed in from_bucket config: ${emptyFields.join(', ')}\n` +
113
+ 'All fields must have non-empty values.\n' +
114
+ 'Example:\n' +
115
+ 'from_bucket:\n' +
116
+ ' provider: supabase\n' +
117
+ ' bucket: my-bucket\n' +
118
+ ' path: file.md');
119
+ }
120
+ }
121
+ }
122
+ exports.StorageBackendManager = StorageBackendManager;
123
+ /**
124
+ * File system storage backend (existing behavior)
125
+ */
126
+ const fs = __importStar(require("fs"));
127
+ const path = __importStar(require("path"));
128
+ const glob_1 = require("glob");
129
+ class FileSystemBackend {
130
+ constructor(basePath = '') {
131
+ this.basePath = basePath;
132
+ }
133
+ canHandle(uri) {
134
+ return !uri.includes('://') || uri.startsWith('file://');
135
+ }
136
+ async readContent(uri) {
137
+ const filePath = this.resolvePath(uri);
138
+ return fs.readFileSync(filePath, 'utf8');
139
+ }
140
+ async listFiles(pattern) {
141
+ const resolvedPattern = this.resolvePath(pattern);
142
+ return (0, glob_1.globSync)(resolvedPattern);
143
+ }
144
+ resolvePath(uri) {
145
+ const cleanPath = uri.replace('file://', '');
146
+ if (path.isAbsolute(cleanPath))
147
+ return cleanPath;
148
+ return path.resolve(this.basePath, cleanPath);
149
+ }
150
+ }
151
+ exports.FileSystemBackend = FileSystemBackend;
152
+ /**
153
+ * Supabase storage backend for cloud file access
154
+ */
155
+ const supabase_js_1 = require("@supabase/supabase-js");
156
+ const storage_error_handler_1 = require("./storage-error-handler");
157
+ class SupabaseStorageBackend {
158
+ constructor() {
159
+ this.validateEnvironment();
160
+ // Use generic environment variables for standalone library
161
+ this.supabase = (0, supabase_js_1.createClient)(process.env.SUPABASE_URL, process.env.SUPABASE_ANON_KEY, {
162
+ auth: { persistSession: false }
163
+ });
164
+ }
165
+ validateEnvironment() {
166
+ const requiredVars = ['SUPABASE_URL', 'SUPABASE_ANON_KEY'];
167
+ const missing = [];
168
+ for (const envVar of requiredVars) {
169
+ if (!process.env[envVar]) {
170
+ missing.push(envVar);
171
+ }
172
+ }
173
+ if (missing.length > 0) {
174
+ throw new Error(`Missing required environment variables for Supabase: ${missing.join(', ')}\n\n` +
175
+ 'Set them with:\n' +
176
+ missing.map(v => `export ${v}=<your_value>`).join('\n') +
177
+ '\n\nOr add them to your .env file.');
178
+ }
179
+ // Validate URL format
180
+ const url = process.env.SUPABASE_URL;
181
+ try {
182
+ const parsed = new URL(url);
183
+ if (!parsed.protocol.startsWith('https')) {
184
+ throw new Error(`SUPABASE_URL must use HTTPS protocol, got: ${parsed.protocol}`);
185
+ }
186
+ if (!url.includes('supabase.co') && !url.includes('localhost')) {
187
+ console.warn(`Warning: SUPABASE_URL doesn't appear to be a standard Supabase URL: ${url}`);
188
+ }
189
+ }
190
+ catch (error) {
191
+ if (error instanceof Error && error.message.includes('HTTPS')) {
192
+ throw error; // Re-throw HTTPS-specific error
193
+ }
194
+ throw new Error(`Invalid SUPABASE_URL format: ${url}\n` +
195
+ 'Expected format: https://your-project.supabase.co');
196
+ }
197
+ }
198
+ async readFromBucket(bucket, filePath) {
199
+ try {
200
+ // Check file metadata first to detect empty files efficiently
201
+ const pathParts = filePath.split('/');
202
+ const fileName = pathParts.pop();
203
+ const folder = pathParts.join('/') || '';
204
+ const { data: listData, error: listError } = await this.supabase.storage
205
+ .from(bucket)
206
+ .list(folder, {
207
+ search: fileName,
208
+ limit: 1
209
+ });
210
+ if (!listError && listData) {
211
+ const fileInfo = listData.find((f) => f.name === fileName);
212
+ if (fileInfo && fileInfo.metadata?.size) {
213
+ const size = fileInfo.metadata.size;
214
+ if (size <= 40) {
215
+ console.warn(`Warning: File '${filePath}' in bucket '${bucket}' is very small (${size} bytes). Check file has meaningful content.`);
216
+ }
217
+ else if (size > 50 * 1024 * 1024) { // 50MB
218
+ console.warn(`Warning: File '${filePath}' in bucket '${bucket}' is very large (${Math.round(size / 1024 / 1024 * 100) / 100}MB). This may cause memory issues or timeouts.`);
219
+ }
220
+ }
221
+ }
222
+ const { data, error } = await this.supabase.storage
223
+ .from(bucket)
224
+ .download(filePath);
225
+ if (error) {
226
+ storage_error_handler_1.StorageErrorHandler.handleProviderError(error, {
227
+ provider: 'supabase',
228
+ operation: 'download',
229
+ bucket,
230
+ filePath
231
+ });
232
+ }
233
+ if (!data) {
234
+ storage_error_handler_1.StorageErrorHandler.handleProviderError({ message: 'No data returned from download' }, { provider: 'supabase', operation: 'download', bucket, filePath });
235
+ }
236
+ return await data.text();
237
+ }
238
+ catch (error) {
239
+ // Re-throw our custom errors, handle unexpected ones through error handler
240
+ if (error.message.includes('Failed to download')) {
241
+ throw error;
242
+ }
243
+ storage_error_handler_1.StorageErrorHandler.handleProviderError(error, {
244
+ provider: 'supabase',
245
+ operation: 'download',
246
+ bucket,
247
+ filePath
248
+ });
249
+ }
250
+ }
251
+ async listFiles(bucket, pathPrefix = '') {
252
+ try {
253
+ const { data, error } = await this.supabase.storage
254
+ .from(bucket)
255
+ .list(pathPrefix, {
256
+ limit: 1000,
257
+ sortBy: { column: 'updated_at', order: 'desc' }
258
+ });
259
+ if (error) {
260
+ storage_error_handler_1.StorageErrorHandler.handleProviderError(error, {
261
+ provider: 'supabase',
262
+ operation: 'list',
263
+ bucket,
264
+ filePath: pathPrefix
265
+ });
266
+ }
267
+ return data?.map((file) => pathPrefix ? `${pathPrefix}/${file.name}` : file.name) || [];
268
+ }
269
+ catch (error) {
270
+ storage_error_handler_1.StorageErrorHandler.handleProviderError(error, {
271
+ provider: 'supabase',
272
+ operation: 'list',
273
+ bucket,
274
+ filePath: pathPrefix
275
+ });
276
+ }
277
+ }
278
+ }
279
+ exports.SupabaseStorageBackend = SupabaseStorageBackend;
280
+ //# sourceMappingURL=storage-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-backend.js","sourceRoot":"","sources":["../../src/lib/storage-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Centralized error handling for storage backends
3
+ * Provides consistent error messages and handling across different cloud providers
4
+ */
5
+ export interface StorageErrorContext {
6
+ provider: string;
7
+ operation: string;
8
+ bucket?: string;
9
+ filePath?: string;
10
+ pattern?: string;
11
+ }
12
+ export declare class StorageErrorHandler {
13
+ /**
14
+ * Handle HTTP status-based errors with provider-specific context
15
+ */
16
+ static handleHttpError(error: any, context: StorageErrorContext, statusCode?: number): never;
17
+ /**
18
+ * Handle provider-specific errors with fallback to generic handling
19
+ */
20
+ static handleProviderError(error: any, context: StorageErrorContext): never;
21
+ /**
22
+ * Handle Supabase-specific error patterns
23
+ */
24
+ private static handleSupabaseError;
25
+ /**
26
+ * Handle AWS S3-specific error patterns
27
+ * TODO: Implement when S3 backend is added
28
+ */
29
+ private static handleS3Error;
30
+ /**
31
+ * Handle Google Cloud Storage-specific error patterns
32
+ * TODO: Implement when GCS backend is added
33
+ */
34
+ private static handleGCSError;
35
+ /**
36
+ * Generic error handling for unknown or unexpected errors
37
+ */
38
+ private static handleGenericError;
39
+ /**
40
+ * Wrap async storage operations with consistent error handling
41
+ */
42
+ static wrapStorageOperation<T>(operation: () => Promise<T>, context: StorageErrorContext): Promise<T>;
43
+ }
44
+ //# sourceMappingURL=storage-error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-error-handler.d.ts","sourceRoot":"","sources":["../../src/lib/storage-error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAE9B;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,mBAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,KAAK;IAwDR;;OAEG;IACH,MAAM,CAAC,mBAAmB,CACxB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,mBAAmB,GAC3B,KAAK;IAeR;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA6ClC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAM5B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA4BjC;;OAEG;WACU,oBAAoB,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC;CAOd"}