UNPKG

recoder-code

Version:

🚀 AI-powered development platform - Chat with 32+ models, build projects, automate workflows. Free models included!

85 lines (84 loc) • 2.66 kB
/** * StorageService * Handles package storage, retrieval, and management across multiple backends */ /// <reference types="node" /> /// <reference types="node" /> import { Config } from '../config'; export interface StorageConfig { type: 'local' | 's3' | 'gcs' | 'azure'; endpoint?: string; region?: string; bucket?: string; credentials?: any; basePath?: string; } export interface StorageMetadata { size: number; contentType: string; etag: string; lastModified: Date; checksums: { md5: string; sha1: string; sha256: string; sha512: string; }; } export interface UploadResult { success: boolean; key: string; url: string; metadata: StorageMetadata; error?: string; } export interface DownloadResult { success: boolean; data?: Buffer; metadata?: StorageMetadata; error?: string; } export declare class StorageService { private readonly config; private readonly logger; constructor(appConfig?: Config); storeTarball(packageName: string, version: string, tarballBuffer: Buffer): Promise<string>; getTarballStream(tarballPath: string): Promise<any>; deleteTarball(tarballPath: string): Promise<void>; uploadPackage(packageName: string, version: string, data: Buffer, contentType?: string): Promise<UploadResult>; downloadPackage(packageName: string, version: string): Promise<DownloadResult>; deletePackage(packageName: string, version: string): Promise<boolean>; getPackageMetadata(packageName: string, version: string): Promise<StorageMetadata | null>; packageExists(packageName: string, version: string): Promise<boolean>; listPackageVersions(packageName: string): Promise<string[]>; getDownloadUrl(packageName: string, version: string): string; private initializeStorage; private generatePackageKey; private generatePackagePrefix; private calculateMetadata; private uploadToLocal; private downloadFromLocal; private deleteFromLocal; private getLocalMetadata; private listLocalVersions; private s3Client; private initializeS3; private uploadToS3; private downloadFromS3; private deleteFromS3; private getS3Metadata; private listS3Versions; private initializeGCS; private initializeAzure; private uploadToGCS; private uploadToAzure; private downloadFromGCS; private downloadFromAzure; private deleteFromGCS; private deleteFromAzure; private getGCSMetadata; private getAzureMetadata; private listGCSVersions; private listAzureVersions; testConnection(): Promise<boolean>; }