UNPKG

@fin.cx/einvoice

Version:

A TypeScript module for creating, manipulating, and embedding XML data within PDF files specifically tailored for electronic invoice (einvoice) packages.

40 lines 2.94 kB
import { BaseEncoder } from '../base/base.encoder.js'; import { InvoiceFormat } from '../../interfaces/common.js'; // Import specific encoders import { UBLEncoder } from '../ubl/generic/ubl.encoder.js'; import { XRechnungEncoder } from '../ubl/xrechnung/xrechnung.encoder.js'; import { FacturXEncoder } from '../cii/facturx/facturx.encoder.js'; import { ZUGFeRDEncoder } from '../cii/zugferd/zugferd.encoder.js'; /** * Factory to create the appropriate encoder based on the target format */ export class EncoderFactory { /** * Creates an encoder for the specified format * @param format Target format for encoding * @returns Appropriate encoder instance */ static createEncoder(format) { switch (format.toLowerCase()) { case InvoiceFormat.UBL: case 'ubl': return new UBLEncoder(); case InvoiceFormat.XRECHNUNG: case 'xrechnung': return new XRechnungEncoder(); case InvoiceFormat.CII: // For now, use Factur-X encoder for generic CII return new FacturXEncoder(); case InvoiceFormat.ZUGFERD: case 'zugferd': // Use dedicated ZUGFeRD encoder return new ZUGFeRDEncoder(); case InvoiceFormat.FACTURX: case 'facturx': return new FacturXEncoder(); default: throw new Error(`Unsupported invoice format for encoding: ${format}`); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvZm9ybWF0cy9mYWN0b3JpZXMvZW5jb2Rlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHM0QsMkJBQTJCO0FBQzNCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDekI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBb0M7UUFDOUQsUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUM3QixLQUFLLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDdkIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUUxQixLQUFLLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDN0IsS0FBSyxXQUFXO2dCQUNkLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBRWhDLEtBQUssYUFBYSxDQUFDLEdBQUc7Z0JBQ3BCLGdEQUFnRDtnQkFDaEQsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBRTlCLEtBQUssYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUMzQixLQUFLLFNBQVM7Z0JBQ1osZ0NBQWdDO2dCQUNoQyxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7WUFFOUIsS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQzNCLEtBQUssU0FBUztnQkFDWixPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7WUFFOUI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=