UNPKG

fhir-package-installer

Version:

A utility module for downloading, indexing, caching, and managing FHIR packages from the FHIR Package Registry and Simplifier

38 lines (36 loc) 1.94 kB
/** * TEST-ONLY: Minimal in-memory mock of a subset of the JFrog Artifactory npm API surface * tailored to fhir-package-installer integration testing. * * Features: * 1. Bearer token auth (single fixed token) -> 401 if missing, 403 if invalid. * 2. Package metadata proxying to an upstream registry (defaults to packages.fhir.org). * 3. Tarball URL rewriting so downstream code exercises redirect logic. * 4. Tarball request simulation via 302 redirect to an upstream tarball base (defaults to packages.simplifier.net). * * NOT FOR PRODUCTION USE. Surface is intentionally small; breaking changes unlikely but * additions may occur in minor versions. Kept here so downstream libraries can reuse * without duplicating test utilities. */ interface MockArtifactoryServerApi { /** Starts listening. If port was 0, a random available port will be selected. */ start(): Promise<void>; /** Gracefully stops the server. */ stop(): Promise<void>; /** Base URL (http://localhost:port). */ getBaseUrl(): string; /** Returns the static valid bearer token you must send under Authorization header. */ getValidToken(): string; } type MockArtifactoryServerOptions = { /** Upstream npm-like registry base URL, e.g. https://packages.fhir.org or http://localhost:PORT */ upstreamRegistryUrl?: string; /** Upstream tarball base URL used for 302 redirects, e.g. https://packages.simplifier.net or http://localhost:PORT */ upstreamTarballBaseUrl?: string; }; /** Factory to create a new mock Artifactory server instance. * @param port Optional port. Pass 0 for ephemeral. */ declare function createMockArtifactoryServer(port?: number, options?: MockArtifactoryServerOptions): MockArtifactoryServerApi; declare const MOCK_ARTIFACTORY_VALID_TOKEN = "test-token"; export { MOCK_ARTIFACTORY_VALID_TOKEN, type MockArtifactoryServerApi, type MockArtifactoryServerOptions, createMockArtifactoryServer };