UNPKG

@freemework/hosting

Version:

Hosting library of the Freemework Project.

179 lines (178 loc) 7.11 kB
import { FConfiguration, FLogger } from "@freemework/common"; export declare namespace FHostingSettings { type WebServer = UnsecuredWebServer | SecuredWebServer; interface WebServerBase { readonly name: string; readonly listenHost: string; readonly listenPort: number; readonly log?: FLogger; /** * See http://expressjs.com/en/4x/api.html#trust.proxy.options.table */ readonly trustProxy?: boolean | "loopback" | "linklocal" | "uniquelocal"; /** * @default true * * Handle HTTP Upgrade to switch a connection into a WebSocket. * See more https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Upgrade */ readonly handleUpgrade?: boolean; } interface UnsecuredBaseWebServer extends WebServerBase { readonly type: "http"; } interface UnsecuredCommonWebServer extends UnsecuredBaseWebServer { } interface UnsecuredXfccWebServer extends UnsecuredBaseWebServer { readonly caCertificates: Buffer | string | Array<string | Buffer>; readonly clientCertificateMode: ClientCertificateMode.XFCC; } type UnsecuredWebServer = UnsecuredCommonWebServer | UnsecuredXfccWebServer; interface SecuredBaseWebServer extends WebServerBase { readonly type: "https"; /** * Certificate's data as Buffer or Path to file */ readonly serverCertificate: Buffer | string; /** * Private Key's data as Buffer or Path to file */ readonly serverKey: Buffer | string; readonly serverKeyPassword?: string; } interface SecuredCommonWebServer extends SecuredBaseWebServer { /** * Certificate's data as Buffer or Path to file */ readonly caCertificates?: Buffer | string | Array<string | Buffer>; readonly clientCertificateMode: ClientCertificateMode.REQUEST | ClientCertificateMode.NONE; } interface SecuredClientWebServer extends SecuredBaseWebServer { /** * Certificate's data as Buffer or Path to file */ readonly caCertificates: Buffer | string | Array<string | Buffer>; readonly clientCertificateMode: ClientCertificateMode.TRUST | ClientCertificateMode.XFCC; } type SecuredWebServer = SecuredCommonWebServer | SecuredClientWebServer; enum ClientCertificateMode { /** * The server will NOT request a certificate from clients that connect WILL NOT validate the certificate. */ NONE = "none", /** * The server WILL request a certificate from clients that connect and WILL NOT validate the certificate. * Validate the certificate by yourself. */ REQUEST = "request", /** * The server WILL request a certificate from clients that connect and validate the certificate * Rejects untrusted certificate */ TRUST = "trust", /** * The server WILL retrieve a certificate from the HTTP header X-Forwarded-Client-Cert and validate the certificate. * Rejects untrusted certificate * Hist: Use $ssl_client_escaped_cert NGINX variable to set X-Forwarded-Client-Cert header inside configuration. */ XFCC = "xfcc" } interface ServerEndpoint { readonly servers: Array<string>; } interface BindEndpoint { readonly bindPath: string; } interface WebSocketEndpoint extends BindEndpoint { readonly defaultProtocol: string; readonly allowedProtocols?: ReadonlyArray<string>; } function fromConfigurationWebServer(configuration: FConfiguration, serverName: string): WebServer; /** * @deprecated Use FHostingSettings.fromConfigurationWebServer instead */ const parseWebServer: typeof fromConfigurationWebServer; function fromConfigurationWebServers(configuration: FConfiguration): Array<FHostingSettings.WebServer>; /** * @deprecated Use FHostingSettings.fromConfigurationWebServers instead */ const parseWebServers: typeof fromConfigurationWebServers; function fromConfigurationTrustProxy(val: string): boolean | "loopback" | "linklocal" | "uniquelocal"; /** * @deprecated Use FHostingSettings.fromConfigurationTrustProxy instead */ const parseTrustProxy: typeof fromConfigurationTrustProxy; } /** * @deprecated Use FHostingSettings instead */ export declare namespace FHostingConfiguration { /** * @deprecated Use FHostingSettings.WebServer instead */ type WebServer = FHostingSettings.WebServer; /** * @deprecated Use FHostingSettings.WebServerBase instead */ type WebServerBase = FHostingSettings.WebServerBase; /** * @deprecated Use FHostingSettings.UnsecuredBaseWebServer instead */ type UnsecuredBaseWebServer = FHostingSettings.UnsecuredBaseWebServer; /** * @deprecated Use FHostingSettings.UnsecuredCommonWebServer instead */ type UnsecuredCommonWebServer = FHostingSettings.UnsecuredCommonWebServer; /** * @deprecated Use FHostingSettings.UnsecuredXfccWebServer instead */ type UnsecuredXfccWebServer = FHostingSettings.UnsecuredXfccWebServer; /** * @deprecated Use FHostingSettings.UnsecuredWebServer instead */ type UnsecuredWebServer = FHostingSettings.UnsecuredWebServer; /** * @deprecated Use FHostingSettings.SecuredBaseWebServer instead */ type SecuredBaseWebServer = FHostingSettings.SecuredBaseWebServer; /** * @deprecated Use FHostingSettings.SecuredCommonWebServer instead */ type SecuredCommonWebServer = FHostingSettings.SecuredCommonWebServer; /** * @deprecated Use FHostingSettings.SecuredClientWebServer instead */ type SecuredClientWebServer = FHostingSettings.SecuredClientWebServer; /** * @deprecated Use FHostingSettings.SecuredWebServer instead */ type SecuredWebServer = FHostingSettings.SecuredWebServer; /** * @deprecated Use FHostingSettings.ClientCertificateMode instead */ const ClientCertificateMode: typeof FHostingSettings.ClientCertificateMode; /** * @deprecated Use FHostingSettings.ServerEndpoint instead */ type ServerEndpoint = FHostingSettings.ServerEndpoint; /** * @deprecated Use FHostingSettings.BindEndpoint instead */ type BindEndpoint = FHostingSettings.BindEndpoint; /** * @deprecated Use FHostingSettings.WebSocketEndpoint instead */ type WebSocketEndpoint = FHostingSettings.WebSocketEndpoint; /** * @deprecated Use FHostingSettings.parseWebServer instead */ const parseWebServer: typeof FHostingSettings.fromConfigurationWebServer; /** * @deprecated Use FHostingSettings.parseWebServers instead */ const parseWebServers: typeof FHostingSettings.fromConfigurationWebServers; /** * @deprecated Use FHostingSettings.parseTrustProxy instead */ const parseTrustProxy: typeof FHostingSettings.fromConfigurationTrustProxy; }