/** * Certificate management module for SmartProxy * Provides certificate provisioning, storage, and management capabilities */ // Certificate types and models export * from './models/certificate-types.js'; // Certificate events export * from './events/certificate-events.js'; // Certificate providers export * from './providers/cert-provisioner.js'; // ACME related exports export * from './acme/acme-factory.js'; export * from './acme/challenge-handler.js'; // Certificate utilities export * from './utils/certificate-helpers.js'; // Certificate storage export * from './storage/file-storage.js'; // Convenience function to create a certificate provisioner with common settings import { CertProvisioner } from './providers/cert-provisioner.js'; import { buildPort80Handler } from './acme/acme-factory.js'; import type { AcmeOptions, DomainForwardConfig } from './models/certificate-types.js'; import type { DomainConfig } from '../forwarding/config/domain-config.js'; /** * Creates a complete certificate provisioning system with default settings * @param domainConfigs Domain configurations * @param acmeOptions ACME options for certificate provisioning * @param networkProxyBridge Bridge to apply certificates to network proxy * @param certProvider Optional custom certificate provider * @returns Configured CertProvisioner */ export function createCertificateProvisioner( domainConfigs: DomainConfig[], acmeOptions: AcmeOptions, networkProxyBridge: any, // Placeholder until NetworkProxyBridge is migrated certProvider?: any // Placeholder until cert provider type is properly defined ): CertProvisioner { // Build the Port80Handler for ACME challenges const port80Handler = buildPort80Handler(acmeOptions); // Extract ACME-specific configuration const { renewThresholdDays = 30, renewCheckIntervalHours = 24, autoRenew = true, domainForwards = [] } = acmeOptions; // Create and return the certificate provisioner return new CertProvisioner( domainConfigs, port80Handler, networkProxyBridge, certProvider, renewThresholdDays, renewCheckIntervalHours, autoRenew, domainForwards ); }