@base44/sdk
Version:
JavaScript SDK for Base44 API
234 lines (233 loc) • 11.2 kB
TypeScript
export type CreateClientOptions = {
onError?: (error: Error) => void;
};
export type Base44Client = ReturnType<typeof createClient>;
/**
* Create a Base44 client instance
* @param {Object} config - Client configuration
* @param {string} [config.serverUrl='https://base44.app'] - API server URL
* @param {string} [config.appBaseUrl] - Application base URL
* @param {string|number} config.appId - Application ID
* @param {string} [config.token] - Authentication token
* @param {string} [config.serviceToken] - Service role authentication token
* @param {boolean} [config.requiresAuth=false] - Whether the app requires authentication
* @returns {Object} Base44 client instance
*/
export declare function createClient(config: {
serverUrl?: string;
appBaseUrl?: string;
appId: string;
token?: string;
serviceToken?: string;
requiresAuth?: boolean;
functionsVersion?: string;
headers?: Record<string, string>;
options?: CreateClientOptions;
}): {
/**
* Set authentication token for all requests
* @param {string} newToken - New auth token
*/
setToken(newToken: string): void;
/**
* Get current configuration
* @returns {Object} Current configuration
*/
getConfig(): {
serverUrl: string;
appId: string;
requiresAuth: boolean;
};
asServiceRole: {
entities: {};
integrations: {};
sso: {
getAccessToken(userid: string): Promise<import("axios").AxiosResponse<any, any>>;
};
connectors: {
getAccessToken(integrationType: import("./types.js").ConnectorIntegrationType): Promise<import("./types.js").ConnectorAccessTokenResponse>;
};
functions: {
invoke(functionName: string, data: Record<string, any>): Promise<import("axios").AxiosResponse<any, any>>;
};
agents: {
getConversations: () => Promise<import("./types.js").AgentConversation[]>;
getConversation: (conversationId: string) => Promise<import("./types.js").AgentConversation | undefined>;
listConversations: (filterParams: import("./types.js").ModelFilterParams) => Promise<import("./types.js").AgentConversation[]>;
createConversation: (conversation: {
agent_name: string;
metadata?: Record<string, any>;
}) => Promise<import("./types.js").AgentConversation>;
addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
getWhatsAppConnectURL: (agentName: string) => string;
};
appLogs: {
logUserInApp(pageName: string): Promise<void>;
fetchLogs(params?: Record<string, any>): Promise<any>;
getStats(params?: Record<string, any>): Promise<any>;
};
cleanup: () => void;
};
entities: {};
integrations: {};
auth: {
me(): Promise<import("axios").AxiosResponse<any, any>>;
updateMe(data: Record<string, any>): Promise<import("axios").AxiosResponse<any, any>>;
redirectToLogin(nextUrl: string): void;
logout(redirectUrl?: string): void;
setToken(token: string, saveToStorage?: boolean): void;
loginViaEmailPassword(email: string, password: string, turnstileToken?: string): Promise<{
access_token: string;
user: any;
}>;
isAuthenticated(): Promise<boolean>;
inviteUser(userEmail: string, role: string): Promise<import("axios").AxiosResponse<any, any>>;
register(payload: {
email: string;
password: string;
turnstile_token?: string | null;
referral_code?: string | null;
}): Promise<import("axios").AxiosResponse<any, any>>;
verifyOtp({ email, otpCode }: {
email: string;
otpCode: string;
}): Promise<import("axios").AxiosResponse<any, any>>;
resendOtp(email: string): Promise<import("axios").AxiosResponse<any, any>>;
resetPasswordRequest(email: string): Promise<import("axios").AxiosResponse<any, any>>;
resetPassword({ resetToken, newPassword, }: {
resetToken: string;
newPassword: string;
}): Promise<import("axios").AxiosResponse<any, any>>;
changePassword({ userId, currentPassword, newPassword, }: {
userId: string;
currentPassword: string;
newPassword: string;
}): Promise<import("axios").AxiosResponse<any, any>>;
};
functions: {
invoke(functionName: string, data: Record<string, any>): Promise<import("axios").AxiosResponse<any, any>>;
};
agents: {
getConversations: () => Promise<import("./types.js").AgentConversation[]>;
getConversation: (conversationId: string) => Promise<import("./types.js").AgentConversation | undefined>;
listConversations: (filterParams: import("./types.js").ModelFilterParams) => Promise<import("./types.js").AgentConversation[]>;
createConversation: (conversation: {
agent_name: string;
metadata?: Record<string, any>;
}) => Promise<import("./types.js").AgentConversation>;
addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
getWhatsAppConnectURL: (agentName: string) => string;
};
appLogs: {
logUserInApp(pageName: string): Promise<void>;
fetchLogs(params?: Record<string, any>): Promise<any>;
getStats(params?: Record<string, any>): Promise<any>;
};
cleanup: () => void;
};
export declare function createClientFromRequest(request: Request): {
/**
* Set authentication token for all requests
* @param {string} newToken - New auth token
*/
setToken(newToken: string): void;
/**
* Get current configuration
* @returns {Object} Current configuration
*/
getConfig(): {
serverUrl: string;
appId: string;
requiresAuth: boolean;
};
asServiceRole: {
entities: {};
integrations: {};
sso: {
getAccessToken(userid: string): Promise<import("axios").AxiosResponse<any, any>>;
};
connectors: {
getAccessToken(integrationType: import("./types.js").ConnectorIntegrationType): Promise<import("./types.js").ConnectorAccessTokenResponse>;
};
functions: {
invoke(functionName: string, data: Record<string, any>): Promise<import("axios").AxiosResponse<any, any>>;
};
agents: {
getConversations: () => Promise<import("./types.js").AgentConversation[]>;
getConversation: (conversationId: string) => Promise<import("./types.js").AgentConversation | undefined>;
listConversations: (filterParams: import("./types.js").ModelFilterParams) => Promise<import("./types.js").AgentConversation[]>;
createConversation: (conversation: {
agent_name: string;
metadata?: Record<string, any>;
}) => Promise<import("./types.js").AgentConversation>;
addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
getWhatsAppConnectURL: (agentName: string) => string;
};
appLogs: {
logUserInApp(pageName: string): Promise<void>;
fetchLogs(params?: Record<string, any>): Promise<any>;
getStats(params?: Record<string, any>): Promise<any>;
};
cleanup: () => void;
};
entities: {};
integrations: {};
auth: {
me(): Promise<import("axios").AxiosResponse<any, any>>;
updateMe(data: Record<string, any>): Promise<import("axios").AxiosResponse<any, any>>;
redirectToLogin(nextUrl: string): void;
logout(redirectUrl?: string): void;
setToken(token: string, saveToStorage?: boolean): void;
loginViaEmailPassword(email: string, password: string, turnstileToken?: string): Promise<{
access_token: string;
user: any;
}>;
isAuthenticated(): Promise<boolean>;
inviteUser(userEmail: string, role: string): Promise<import("axios").AxiosResponse<any, any>>;
register(payload: {
email: string;
password: string;
turnstile_token?: string | null;
referral_code?: string | null;
}): Promise<import("axios").AxiosResponse<any, any>>;
verifyOtp({ email, otpCode }: {
email: string;
otpCode: string;
}): Promise<import("axios").AxiosResponse<any, any>>;
resendOtp(email: string): Promise<import("axios").AxiosResponse<any, any>>;
resetPasswordRequest(email: string): Promise<import("axios").AxiosResponse<any, any>>;
resetPassword({ resetToken, newPassword, }: {
resetToken: string;
newPassword: string;
}): Promise<import("axios").AxiosResponse<any, any>>;
changePassword({ userId, currentPassword, newPassword, }: {
userId: string;
currentPassword: string;
newPassword: string;
}): Promise<import("axios").AxiosResponse<any, any>>;
};
functions: {
invoke(functionName: string, data: Record<string, any>): Promise<import("axios").AxiosResponse<any, any>>;
};
agents: {
getConversations: () => Promise<import("./types.js").AgentConversation[]>;
getConversation: (conversationId: string) => Promise<import("./types.js").AgentConversation | undefined>;
listConversations: (filterParams: import("./types.js").ModelFilterParams) => Promise<import("./types.js").AgentConversation[]>;
createConversation: (conversation: {
agent_name: string;
metadata?: Record<string, any>;
}) => Promise<import("./types.js").AgentConversation>;
addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
getWhatsAppConnectURL: (agentName: string) => string;
};
appLogs: {
logUserInApp(pageName: string): Promise<void>;
fetchLogs(params?: Record<string, any>): Promise<any>;
getStats(params?: Record<string, any>): Promise<any>;
};
cleanup: () => void;
};