@adobe/ccweb-add-on-devcert
Version:
Generate trusted local SSL/TLS certificates for local SSL development
55 lines (54 loc) • 2.39 kB
TypeScript
/// <reference types="node" />
import { UserInterface } from "./user-interface";
export interface Options {
/** Return the CA certificate data? */
getCaBuffer?: boolean;
/** Return the path to the CA certificate? */
getCaPath?: boolean;
/** If `certutil` is not installed already (for updating nss databases; e.g. firefox), do not attempt to install it */
skipCertutilInstall?: boolean;
/** Do not update your systems host file with the domain name of the certificate */
skipHostsFile?: boolean;
/** User interface hooks */
ui?: UserInterface;
}
interface ICaBuffer {
ca: Buffer;
}
interface ICaPath {
caPath: string;
}
interface IDomainData {
key: Buffer;
cert: Buffer;
}
declare type IReturnCa<O extends Options> = O["getCaBuffer"] extends true ? ICaBuffer : false;
declare type IReturnCaPath<O extends Options> = O["getCaPath"] extends true ? ICaPath : false;
declare type IReturnData<O extends Options = {}> = IDomainData & IReturnCa<O> & IReturnCaPath<O>;
/**
* Request an SSL certificate for the given app name signed by the devcert root
* certificate authority. If devcert has previously generated a certificate for
* that app name on this machine, it will reuse that certificate.
*
* If this is the first time devcert is being run on this machine, it will
* generate and attempt to install a root certificate authority.
*
* Returns a promise that resolves with { key, cert }, where `key` and `cert`
* are Buffers with the contents of the certificate private key and certificate
* file, respectively
*
* If `options.getCaBuffer` is true, return value will include the ca certificate data
* as { ca: Buffer }
*
* If `options.getCaPath` is true, return value will include the ca certificate path
* as { caPath: string }
*/
export declare function certificateFor<O extends Options>(requestedDomains: string | string[], options?: O): Promise<IReturnData<O>>;
export declare function hasCertificateFor(requestedDomains: string | string[]): boolean;
export declare function configuredDomains(): string[];
export declare function location(): string;
export declare function removeDomain(requestedDomains: string | string[]): Promise<void>;
export declare function removeAll(): void;
export declare function caExpiryInDays(): number;
export declare function certificateExpiryInDays(domain: string): number;
export {};