This commit is contained in:
2025-04-03 15:53:08 +00:00
parent 3e8b5c2869
commit 21650f1181
49 changed files with 4835 additions and 2878 deletions

View File

@ -1,68 +1,90 @@
import * as interfaces from './interfaces.js';
// Import main class
import { XInvoice } from './classes.xinvoice.js';
// Import format-specific encoder/decoder classes
import { FacturXEncoder } from './formats/facturx.encoder.js';
import { FacturXDecoder } from './formats/facturx.decoder.js';
import { XInvoiceEncoder } from './formats/xrechnung.encoder.js';
import { XInvoiceDecoder } from './formats/xrechnung.decoder.js';
import { DecoderFactory } from './formats/decoder.factory.js';
import { BaseDecoder } from './formats/base.decoder.js';
// Import interfaces
import * as common from './interfaces/common.js';
// Import validator classes
import { ValidatorFactory } from './formats/validator.factory.js';
import { BaseValidator } from './formats/base.validator.js';
import { FacturXValidator } from './formats/facturx.validator.js';
import { UBLValidator } from './formats/ubl.validator.js';
// Import factories
import { DecoderFactory } from './formats/factories/decoder.factory.js';
import { EncoderFactory } from './formats/factories/encoder.factory.js';
import { ValidatorFactory } from './formats/factories/validator.factory.js';
// Export specific interfaces for easier use
// Import base classes
import { BaseDecoder } from './formats/base/base.decoder.js';
import { BaseEncoder } from './formats/base/base.encoder.js';
import { BaseValidator } from './formats/base/base.validator.js';
// Import UBL base classes
import { UBLBaseDecoder } from './formats/ubl/ubl.decoder.js';
import { UBLBaseEncoder } from './formats/ubl/ubl.encoder.js';
import { UBLBaseValidator } from './formats/ubl/ubl.validator.js';
// Import CII base classes
import { CIIBaseDecoder } from './formats/cii/cii.decoder.js';
import { CIIBaseEncoder } from './formats/cii/cii.encoder.js';
import { CIIBaseValidator } from './formats/cii/cii.validator.js';
// Import PDF utilities
import { PDFEmbedder } from './formats/pdf/pdf.embedder.js';
import { PDFExtractor } from './formats/pdf/pdf.extractor.js';
// Import format detector
import { FormatDetector } from './formats/utils/format.detector.js';
// Import Factur-X implementation
import { FacturXDecoder } from './formats/cii/facturx/facturx.decoder.js';
import { FacturXEncoder } from './formats/cii/facturx/facturx.encoder.js';
import { FacturXValidator } from './formats/cii/facturx/facturx.validator.js';
// Export interfaces
export type {
IXInvoice,
IParty,
IAddress,
IContact,
IInvoiceItem,
// Common interfaces
TInvoice,
TCreditNote,
TDebitNote,
TContact,
TLetterEnvelope,
TDocumentEnvelope,
IPdf,
// Validation interfaces
ValidationError,
ValidationResult,
ValidationLevel,
InvoiceFormat,
IValidator,
// Format interfaces
ExportFormat,
XInvoiceOptions,
IValidator
} from './interfaces.js';
XInvoiceOptions
} from './interfaces/common.js';
export { ValidationLevel, InvoiceFormat } from './interfaces/common.js';
// Export interfaces (legacy support)
export { interfaces };
export { common as interfaces };
// Export main class
export { XInvoice };
// Export format classes
export {
// Base classes
BaseDecoder,
DecoderFactory,
// Format-specific encoders
FacturXEncoder,
XInvoiceEncoder,
// Format-specific decoders
FacturXDecoder,
XInvoiceDecoder
};
// Export factories
export { DecoderFactory, EncoderFactory, ValidatorFactory };
// Export validator classes
export const Validators = {
ValidatorFactory,
BaseValidator,
FacturXValidator,
UBLValidator
};
// Export base classes
export { BaseDecoder, BaseEncoder, BaseValidator };
// For backward compatibility
export { FacturXEncoder as ZugferdXmlEncoder };
export { FacturXDecoder as ZUGFeRDXmlDecoder };
// Export UBL base classes
export { UBLBaseDecoder, UBLBaseEncoder, UBLBaseValidator };
// Export CII base classes
export { CIIBaseDecoder, CIIBaseEncoder, CIIBaseValidator };
// Export Factur-X implementation
export { FacturXDecoder, FacturXEncoder, FacturXValidator };
// Export PDF utilities
export { PDFEmbedder, PDFExtractor };
// Export format detector
export { FormatDetector };
/**
* Validates an XML string against the appropriate format rules
@ -72,8 +94,8 @@ export { FacturXDecoder as ZUGFeRDXmlDecoder };
*/
export function validateXml(
xml: string,
level: interfaces.ValidationLevel = interfaces.ValidationLevel.SYNTAX
): interfaces.ValidationResult {
level: common.ValidationLevel = common.ValidationLevel.SYNTAX
): common.ValidationResult {
try {
const validator = ValidatorFactory.createValidator(xml);
return validator.validate(level);
@ -95,4 +117,4 @@ export function validateXml(
*/
export function createXInvoice(): XInvoice {
return new XInvoice();
}
}