@nicodoggie/node-kiwi-tcms-api
Version:
Vibe-coded Node.js wrapper for Kiwi TCMS XML-RPC API. Use at your own risk.
76 lines (75 loc) • 1.98 kB
TypeScript
import { KiwiConfig } from './types';
/**
* Base XML-RPC client for Kiwi TCMS
*/
export declare class KiwiClient {
private client?;
private config;
private sessionId?;
private cfAuthCookie?;
constructor(config: KiwiConfig);
/**
* Get Cloudflare Access authorization cookie using axios
*/
private getCloudflareAuthCookie;
/**
* Initialize the XML-RPC client with proper authentication
*/
private initializeClient;
/**
* Make an XML-RPC method call
*/
call<T = any>(method: string, params?: any[]): Promise<T>;
/**
* Authenticate with the Kiwi TCMS server
*/
login(): Promise<string>;
/**
* Logout from the Kiwi TCMS server
*/
logout(): Promise<void>;
/**
* Make an authenticated XML-RPC call
* Note: Kiwi TCMS uses session cookies for authentication, not session ID parameters
*/
authenticatedCall<T = any>(method: string, params?: any[]): Promise<T>;
/**
* Get the current session ID
*/
getSessionId(): string | undefined;
/**
* Check if client is authenticated
*/
isAuthenticated(): boolean;
/**
* Set session ID manually (useful for token-based auth)
*/
setSessionId(sessionId: string): void;
/**
* Test connectivity to the server
*/
testConnection(): Promise<string[]>;
getVersion(): Promise<string>;
/**
* List available XML-RPC methods (useful for debugging)
*/
listMethods(): Promise<string[]>;
/**
* Set a custom header for all requests
*/
setHeader(name: string, value: string): void;
/**
* Set Cloudflare Access credentials
*/
setCloudflareAccess(clientId: string, clientSecret: string): void;
/**
* Get current headers configuration
*/
getHeaders(): {
[key: string]: string;
} | undefined;
/**
* Get the current configuration
*/
getConfig(): KiwiConfig;
}