40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import * as plugins from './smartacme.plugins.js';
|
|
|
|
/**
|
|
* Plain certificate record.
|
|
*/
|
|
export class SmartacmeCert {
|
|
public id: string;
|
|
public domainName: string;
|
|
public created: number;
|
|
public privateKey: string;
|
|
public publicKey: string;
|
|
public csr: string;
|
|
public validUntil: number;
|
|
|
|
constructor(data: Partial<SmartacmeCert> = {}) {
|
|
this.id = data.id || '';
|
|
this.domainName = data.domainName || '';
|
|
this.created = data.created || Date.now();
|
|
this.privateKey = data.privateKey || '';
|
|
this.publicKey = data.publicKey || '';
|
|
this.csr = data.csr || '';
|
|
this.validUntil = data.validUntil || 0;
|
|
}
|
|
|
|
/**
|
|
* Check if certificate is still valid.
|
|
*/
|
|
public isStillValid(): boolean {
|
|
return this.validUntil >= Date.now();
|
|
}
|
|
|
|
/**
|
|
* Check if certificate needs renewal (e.g., expires in <10 days).
|
|
*/
|
|
public shouldBeRenewed(): boolean {
|
|
const threshold = Date.now() + plugins.smarttime.getMilliSecondsFromUnits({ days: 10 });
|
|
return this.validUntil < threshold;
|
|
}
|
|
}
|