@stacksjs/rpx
Version:
A modern and smart reverse proxy.
46 lines (45 loc) • 2.33 kB
TypeScript
import type { RegistryEntry } from './registry';
export declare function startDnsServer(domains: string[], verbose?: boolean): Promise<boolean>;
export declare function stopDnsServer(verbose?: boolean): void;
export declare function isDnsServerRunning(): boolean;
/** True when something is answering A queries for `host` on the rpx dev DNS port. */
export declare function isRpxDevelopmentDnsAnswering(host: string, timeoutMs?: number): Promise<boolean>;
export declare function resolverFilePath(basename: string): string;
/** True when a resolver file points at the rpx local DNS port. */
export declare function contentLooksLikeRpxResolver(content: string): boolean;
/**
* @deprecated Use {@link setupDevelopmentDns}. Domain-scoped resolver files only.
*/
export declare function setupResolver(verbose?: boolean, domains?: string[]): Promise<boolean>;
/** Remove legacy whole-TLD resolver files (e.g. `/etc/resolver/com`). */
export declare function removeLegacyTldResolvers(verbose?: boolean): Promise<string[]>;
/**
* Start the local DNS server and install domain-scoped macOS resolver files.
*/
export declare function setupDevelopmentDns(opts: DevelopmentDnsOptions): Promise<boolean>;
/**
* Sync resolver + DNS state to the current set of registry hosts (daemon mode).
*/
export declare function syncDevelopmentDnsFromRegistry(entries: RegistryEntry[], opts?: { rpxDir?: string, verbose?: boolean, ownerPid?: number }): Promise<void>;
/**
* Stop DNS and remove all resolver files recorded in state (plus legacy TLD files).
*/
export declare function tearDownDevelopmentDns(opts?: { rpxDir?: string, verbose?: boolean }): Promise<void>;
/**
* @deprecated Use {@link tearDownDevelopmentDns}.
*/
export declare function removeResolver(verbose?: boolean): Promise<void>;
/**
* Remove stale DNS overrides left after a crashed dev session or legacy TLD hijacks.
* Safe to call before starting the daemon or `./buddy dev`.
*/
export declare function reconcileStaleDevelopmentDns(opts?: { rpxDir?: string, verbose?: boolean }): Promise<void>;
/** High port — does not require root. */
export declare const DNS_PORT: 15353;
export declare const RPX_RESOLVER_MARKER: '# managed-by: rpx';
export declare interface DevelopmentDnsOptions {
domains: string[]
rpxDir?: string
verbose?: boolean
ownerPid?: number
}