managarten/packages/shared-storage/src/index.ts
Till JS 152fa5fe08 feat(storage): add deleteByPrefix, copy, getMetadata and prod lifecycle rules
- Add deleteByPrefix(prefix) for bulk user data deletion (account cleanup)
- Add copy(sourceKey, destKey) via CopyObjectCommand for file duplication
- Add getMetadata(key) via HeadObjectCommand for content-type/size/metadata
- Add FileMetadata type for structured metadata responses
- Add minio-init container to docker-compose.macmini.yml with bucket creation,
  public access policies, and lifecycle rules (matching dev compose)
- 96 tests passing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 19:40:17 +01:00

66 lines
1.3 KiB
TypeScript

// Main client
export { StorageClient } from './client';
// Factory functions
export {
createStorage,
createStorageClient,
getStorageConfig,
createManaCoreStorage,
createPictureStorage,
createChatStorage,
createManaDeckStorage,
createPresiStorage,
createCalendarStorage,
createContactsStorage,
createStorageStorage,
createMailStorage,
createInventoryStorage,
createMukkeStorage,
createPlantaStorage,
createProjectDocStorage,
} from './factory';
// Hooks
export { StorageHooks } from './hooks';
export type {
StorageEventType,
StorageEventMap,
StorageHook,
UploadEventPayload,
DeleteEventPayload,
DownloadEventPayload,
ErrorEventPayload,
} from './hooks';
// Metrics
export { InMemoryMetrics, attachMetrics } from './metrics';
export type { StorageMetricsCollector } from './metrics';
// Utilities
export {
generateFileKey,
generateUserFileKey,
getContentType,
validateFileSize,
validateFileExtension,
IMAGE_EXTENSIONS,
DOCUMENT_EXTENSIONS,
AUDIO_EXTENSIONS,
VIDEO_EXTENSIONS,
} from './utils';
// Types
export {
BUCKETS,
type StorageConfig,
type BucketConfig,
type BucketName,
type UploadOptions,
type PresignedUrlOptions,
type MultipartUploadInit,
type MultipartUploadPart,
type UploadResult,
type FileInfo,
type FileMetadata,
} from './types';