feat(docs): Update README to reflect new modular architecture and expanded core utilities: add Project Architecture Overview, update export paths and API references, and mark plan tasks as completed

This commit is contained in:
2025-05-09 22:11:56 +00:00
parent 5e97c088bf
commit 6b910587ab
9 changed files with 408 additions and 501 deletions

View File

@ -4,7 +4,7 @@ import * as plugins from '../../plugins.js';
* Certificate data structure containing all necessary information
* about a certificate
*/
export interface CertificateData {
export interface ICertificateData {
domain: string;
certificate: string;
privateKey: string;
@ -17,7 +17,7 @@ export interface CertificateData {
/**
* Certificates pair (private and public keys)
*/
export interface Certificates {
export interface ICertificates {
privateKey: string;
publicKey: string;
}
@ -25,7 +25,7 @@ export interface Certificates {
/**
* Certificate failure payload type
*/
export interface CertificateFailure {
export interface ICertificateFailure {
domain: string;
error: string;
isRenewal: boolean;
@ -34,7 +34,7 @@ export interface CertificateFailure {
/**
* Certificate expiry payload type
*/
export interface CertificateExpiring {
export interface ICertificateExpiring {
domain: string;
expiryDate: Date;
daysRemaining: number;
@ -43,7 +43,7 @@ export interface CertificateExpiring {
/**
* Domain forwarding configuration
*/
export interface ForwardConfig {
export interface IForwardConfig {
ip: string;
port: number;
}
@ -51,28 +51,28 @@ export interface ForwardConfig {
/**
* Domain-specific forwarding configuration for ACME challenges
*/
export interface DomainForwardConfig {
export interface IDomainForwardConfig {
domain: string;
forwardConfig?: ForwardConfig;
acmeForwardConfig?: ForwardConfig;
forwardConfig?: IForwardConfig;
acmeForwardConfig?: IForwardConfig;
sslRedirect?: boolean;
}
/**
* Domain configuration options
*/
export interface DomainOptions {
export interface IDomainOptions {
domainName: string;
sslRedirect: boolean; // if true redirects the request to port 443
acmeMaintenance: boolean; // tries to always have a valid cert for this domain
forward?: ForwardConfig; // forwards all http requests to that target
acmeForward?: ForwardConfig; // forwards letsencrypt requests to this config
forward?: IForwardConfig; // forwards all http requests to that target
acmeForward?: IForwardConfig; // forwards letsencrypt requests to this config
}
/**
* Unified ACME configuration options used across proxies and handlers
*/
export interface AcmeOptions {
export interface IAcmeOptions {
accountEmail?: string; // Email for Let's Encrypt account
enabled?: boolean; // Whether ACME is enabled
port?: number; // Port to listen on for ACME challenges (default: 80)
@ -83,15 +83,5 @@ export interface AcmeOptions {
autoRenew?: boolean; // Whether to automatically renew certificates
certificateStore?: string; // Directory to store certificates
skipConfiguredCerts?: boolean; // Skip domains with existing certificates
domainForwards?: DomainForwardConfig[]; // Domain-specific forwarding configs
}
// Backwards compatibility interfaces
export interface ICertificates extends Certificates {}
export interface ICertificateData extends CertificateData {}
export interface ICertificateFailure extends CertificateFailure {}
export interface ICertificateExpiring extends CertificateExpiring {}
export interface IForwardConfig extends ForwardConfig {}
export interface IDomainForwardConfig extends DomainForwardConfig {}
export interface IDomainOptions extends DomainOptions {}
export interface IAcmeOptions extends AcmeOptions {}
domainForwards?: IDomainForwardConfig[]; // Domain-specific forwarding configs
}