UNPKG

@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
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; }