@cavi-ai/api-client/core/http
Package subpath: ./core/http
ApiKeyCredentialOptions
Kind: type
export type ApiKeyCredentialOptions = {
/** Header name for the key. Defaults to "Authorization". */
header?: string;
/** Extra static headers (e.g. { "anthropic-version": "2023-06-01" }). */
extra?: Record<string, string>;
};apiKeyCredentials
Kind: function
/** API-key scheme (e.g. Anthropic: header "x-api-key" + "anthropic-version"). */
export declare function apiKeyCredentials(key: string, options?: ApiKeyCredentialOptions): CredentialResolver;BaseHttpApiClient
Kind: class
export declare class BaseHttpApiClient {
readonly surface: HttpApiTrace["surface"];
readonly baseUrl: string;
readonly basePath: string;
readonly authToken: string;
readonly clientId: string;
readonly sendsPortalClientId: boolean;
readonly defaultHeaders: Record<string, string>;
readonly resolveAuthHeaders?: () => Record<string, string>;
readonly defaultTimeoutMs: number;
readonly cache: RequestCache;
readonly credentials?: RequestCredentials;
private readonly fetchImpl;
private readonly onTrace?;
constructor(surface: HttpApiTrace["surface"], options: HttpApiClientOptions);
protected resolvePath(path: string): string;
protected resolveUrl(path: string): string;
protected buildHeaders(init?: HttpApiRequestInit): Record<string, string>;
protected buildBody(init?: HttpApiRequestInit): BodyInit | undefined;
protected buildFetchInit(method: HttpApiHttpMethod, headers: Record<string, string>, body: BodyInit | undefined, signal: AbortSignal, init?: HttpApiRequestInit): RequestInit;
protected emitTrace(trace: HttpApiTrace): void;
protected requestRaw(path: string, init?: HttpApiRequestInit): Promise<Response>;
protected requestJson<TResponse>(path: string, init?: HttpApiRequestInit): Promise<TResponse>;
protected requestBlob(path: string, init?: HttpApiRequestInit): Promise<Blob>;
createTransport(): HttpApiTransport;
}bearerCredentials
Kind: function
/** Standard bearer scheme. Emits nothing when the token is empty. */
export declare function bearerCredentials(token: string | null | undefined): CredentialResolver;buildGatewayHttpError
Kind: function
export declare function buildGatewayHttpError(params: {
label: string;
status: number;
statusText: string;
message?: string | null;
code?: string | null;
}): GatewayHttpError;cleanGatewayErrorText
Kind: function
export declare function cleanGatewayErrorText(value: unknown): string | null;createJsonHttpRequest
Kind: function
export declare function createJsonHttpRequest(opts: {
surface: HttpApiTrace["surface"];
httpBase: string;
authToken: string | null;
clientId?: string | null;
defaultHeaders?: Record<string, string>;
credentials?: RequestCredentials;
cache?: RequestCache;
}): JsonHttpRequest;createRawHttpApiClient
Kind: function
export declare function createRawHttpApiClient(params: {
surface: HttpApiTrace["surface"];
baseUrl: string;
authToken: string | null;
clientId?: string | null;
defaultHeaders?: Record<string, string>;
credentials?: RequestCredentials;
cache?: RequestCache;
fetchImpl?: typeof fetch;
}): RawHttpApiClient;CredentialHeaders
Kind: type
/** Auth headers a credential resolver contributes to a request. */
export type CredentialHeaders = Record<string, string>;CredentialResolver
Kind: type
/**
* Provider-supplied auth scheme. Returns the headers to merge onto a request.
* Closes over whatever secret the provider needs (token, api key, cookie).
*/
export type CredentialResolver = () => CredentialHeaders;DEFAULT_PREVIEW_MAX_CHARS
Kind: variable
export declare const DEFAULT_PREVIEW_MAX_CHARS = 12000;describeHttpContract
Kind: function
/** Human-readable HTTP contract line for envelopes and diagnostics. */
export declare function describeHttpContract(method: string, path: string, bodyHint?: string): string;extractGatewayErrorDetails
Kind: function
export declare function extractGatewayErrorDetails(payload: unknown): {
message: string | null;
code: string | null;
};GatewayHttpError
Kind: class
export declare class GatewayHttpError extends Error {
readonly type = ApiClientErrorType.GatewayHttp;
readonly status: number;
readonly code: string | null;
constructor(message: string, status: number, code?: string | null);
}HttpApiClientAuth
Kind: type
export type HttpApiClientAuth = {
bearerToken?: string | null;
clientId?: string | null;
/**
* Provider-supplied auth scheme. When present, its headers replace the
* default bearer Authorization header. See core/http/credentials.ts.
*/
resolveHeaders?: CredentialResolver;
};HttpApiClientOptions
Kind: type
export type HttpApiClientOptions = {
baseUrl: string;
basePath?: string;
allowRelativeBaseUrl?: boolean;
defaultHeaders?: Record<string, string>;
/** Send the X-Portal-Client-Id header. Default true; set false for non-gateway backends. */
includePortalClientIdHeader?: boolean;
auth?: HttpApiClientAuth;
defaultTimeoutMs?: number;
fetchImpl?: typeof fetch;
cache?: RequestCache;
credentials?: RequestCredentials;
onTrace?: (trace: HttpApiTrace) => void;
};HttpApiClientSurface
Kind: type
export type HttpApiClientSurface = string;HttpApiError
Kind: class
export declare class HttpApiError extends Error {
readonly type = ApiClientErrorType.Http;
readonly code = ApiClientErrorCode.HttpRequestFailed;
readonly path: string;
readonly url: string;
readonly method: HttpApiHttpMethod;
readonly status: number;
readonly body: string;
constructor(params: {
message: string;
path: string;
url: string;
method: HttpApiHttpMethod;
status: number;
body: string;
});
}HttpApiHttpMethod
Kind: type
export type HttpApiHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";HttpApiRequestInit
Kind: type
export type HttpApiRequestInit = {
method?: HttpApiHttpMethod;
body?: unknown;
rawBody?: BodyInit;
headers?: Record<string, string>;
signal?: AbortSignal;
timeoutMs?: number;
idempotencyKey?: string;
cache?: RequestCache;
credentials?: RequestCredentials;
};HttpApiTrace
Kind: type
export type HttpApiTrace = {
at: number;
surface: HttpApiClientSurface;
method: HttpApiHttpMethod;
path: string;
url: string;
ok: boolean;
status?: number;
durationMs: number;
error?: string;
};HttpApiTransport
Kind: type
export type HttpApiTransport = <TResponse>(path: string, init?: HttpApiRequestInit) => Promise<TResponse>;IDEMPOTENCY_KEY_HEADER
Kind: variable
export declare const IDEMPOTENCY_KEY_HEADER: "Idempotency-Key";isGatewayHttpError
Kind: function
export declare function isGatewayHttpError(error: unknown): error is GatewayHttpError;isHttpApiError
Kind: function
export declare function isHttpApiError(error: unknown): error is HttpApiError;isSensitiveKey
Kind: function
export declare function isSensitiveKey(key: string): boolean;isValidPortalClientId
Kind: function
export declare function isValidPortalClientId(value: string | null | undefined): boolean;JsonHttpApiClient
Kind: class
export declare class JsonHttpApiClient extends BaseHttpApiClient {
request<TData>(path: string, init?: HttpApiRequestInit): Promise<TData>;
private requestJsonBody;
}JsonHttpRequest
Kind: type
export type JsonHttpRequest = <TData>(path: string, init?: HttpApiRequestInit) => Promise<TData>;normalizePortalClientId
Kind: function
export declare function normalizePortalClientId(value: string | null | undefined): string | null;parseGatewayErrorText
Kind: function
export declare function parseGatewayErrorText(text: string, contentType: string): {
message: string | null;
code: string | null;
};PORTAL_CLIENT_ID_HEADER
Kind: variable
export declare const PORTAL_CLIENT_ID_HEADER: "X-Portal-Client-Id";RawHttpApiClient
Kind: class
export declare class RawHttpApiClient extends BaseHttpApiClient {
raw(path: string, init?: HttpApiRequestInit): Promise<Response>;
}REDACTION_PLACEHOLDER
Kind: variable
/**
* Single source of truth for scrubbing secrets out of values, text, and config
* keys before they are logged, previewed, or rendered.
*
* Gateway-agnostic: the same sensitivity rule governs HTTP request/response
* previews and config-path filtering so the two can never drift apart.
*/
export declare const REDACTION_PLACEHOLDER = "[REDACTED]";redactPreviewText
Kind: function
export declare function redactPreviewText(text: string, maxChars?: number): string;redactSensitiveText
Kind: function
export declare function redactSensitiveText(text: string): string;redactSensitiveValue
Kind: function
export declare function redactSensitiveValue(value: unknown): unknown;requirePortalClientId
Kind: function
export declare function requirePortalClientId(value: string | null | undefined): string;SENSITIVE_KEY_PATTERN
Kind: variable
/**
* Matches a key segment that names a credential. Segments may be separated by
* `.`, `_`, or `-` (e.g. `model.api_key`, `auth-token`, `refreshToken`).
*/
export declare const SENSITIVE_KEY_PATTERN: RegExp;stringifyRedacted
Kind: function
export declare function stringifyRedacted(value: unknown, maxChars?: number): string | undefined;toHttpRequestInit
Kind: function
export declare function toHttpRequestInit(init: RequestInit | undefined, headers?: Record<string, string>): HttpApiRequestInit;withQuery
Kind: function
export declare function withQuery(path: string, params: Record<string, string | number | undefined>): string;