UNPKG

@openade/fe

Version:

Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)

86 lines 2.76 kB
import type { FatturaElettronica } from '@openade/common'; import type { IStorage } from './storage.interface'; export interface ArchiveConfig { fileStorage: IStorage; archiveDir: string; retentionDays?: number; compression?: boolean; encryption?: boolean; format?: 'zip' | 'tar' | 'custom'; metadataFile?: string; indexFile?: string; } export interface ArchiveMetadata { id: string; name: string; createdAt: string; periodStart: string; periodEnd: string; invoiceCount: number; totalSize: number; checksum: string; compressed: boolean; encrypted: boolean; format: string; retentionDate: string; } export interface ArchiveEntry { filename: string; invoiceId: string; invoiceDate: string; customerVatNumber?: string; amount: number; size: number; checksum: string; archiveDate: string; } export interface ArchiveResult { archiveId: string; success: boolean; invoiceCount: number; archiveSize: number; error?: string; metadata?: ArchiveMetadata; } export declare class ArchiveManager { private config; private compressionService; private encryptionService; constructor(config: ArchiveConfig); initialize(): Promise<void>; createArchive(invoices: Array<{ invoice: FatturaElettronica; filename: string; xmlContent: string; }>, archiveName: string, periodStart: string, periodEnd: string): Promise<ArchiveResult>; private archiveInvoice; listArchives(): Promise<ArchiveMetadata[]>; getArchive(archiveId: string): Promise<ArchiveMetadata | null>; extractArchive(archiveId: string, extractPath: string): Promise<boolean>; deleteArchive(archiveId: string): Promise<boolean>; cleanupExpiredArchives(): Promise<number>; private generateArchiveId; private ensureArchiveDirectory; private calculateFileChecksum; private calculateArchiveChecksum; private calculateRetentionDate; private saveArchiveMetadata; private saveArchiveIndex; private loadArchiveMetadata; private findArchivePath; private copyArchiveContents; private removeDirectory; private compressArchive; private encryptArchive; private extractInvoiceId; private extractInvoiceDate; private extractCustomerVatNumber; private extractInvoiceAmount; } export declare function createArchiveManager(config: ArchiveConfig): ArchiveManager; export declare function archiveInvoices(invoices: Array<{ invoice: FatturaElettronica; filename: string; xmlContent: string; }>, archiveName: string, periodStart: string, periodEnd: string, config: ArchiveConfig): Promise<ArchiveResult>; //# sourceMappingURL=archive.manager.d.ts.map