@warriorteam/redai-api-sdk
Version:
TypeScript SDK for RedAI Backend API
1 lines • 47.8 kB
Source Map (JSON)
{"version":3,"sources":["../src/core/http-client.ts","../src/modules/dashboard-generic/services/api.service.ts","../src/modules/dashboard-generic/services/page-template.service.ts","../src/modules/dashboard-generic/services/execute-api.service.ts","../src/modules/dashboard-generic/services/ai-page-generator.service.ts","../src/modules/dashboard-generic/types/common.types.ts","../src/modules/dashboard-generic/index.ts","../src/index.ts"],"names":["SortDirection","PageTemplateType","DashboardModule","DashboardChartType"],"mappings":"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","file":"index.mjs","sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\r\n\r\n/**\r\n * Configuration for SDK HTTP Client\r\n */\r\nexport interface HttpClientConfig {\r\n /** Base URL of the API */\r\n baseUrl: string;\r\n /** Default timeout in milliseconds */\r\n timeout?: number;\r\n /** Default headers */\r\n headers?: Record<string, string>;\r\n}\r\n\r\n/**\r\n * API Response wrapper\r\n */\r\nexport interface ApiResponse<T = unknown> {\r\n code: number;\r\n message: string;\r\n result: T;\r\n}\r\n\r\n/**\r\n * Paginated result wrapper\r\n */\r\nexport interface PaginatedResult<T> {\r\n items: T[];\r\n total: number;\r\n page: number;\r\n limit: number;\r\n totalPages: number;\r\n}\r\n\r\n/**\r\n * HTTP Client for SDK\r\n */\r\nexport class HttpClient {\r\n private client: AxiosInstance;\r\n private authToken: string | null = null;\r\n\r\n constructor(config: HttpClientConfig) {\r\n this.client = axios.create({\r\n baseURL: config.baseUrl,\r\n timeout: config.timeout ?? 30000,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n ...config.headers,\r\n },\r\n });\r\n\r\n // Request interceptor for auth\r\n this.client.interceptors.request.use((requestConfig) => {\r\n if (this.authToken && requestConfig.headers) {\r\n requestConfig.headers.Authorization = `Bearer ${this.authToken}`;\r\n }\r\n return requestConfig;\r\n });\r\n }\r\n\r\n /**\r\n * Set authentication token\r\n */\r\n setAuthToken(token: string): void {\r\n this.authToken = token;\r\n }\r\n\r\n /**\r\n * Clear authentication token\r\n */\r\n clearAuthToken(): void {\r\n this.authToken = null;\r\n }\r\n\r\n /**\r\n * Get current auth token\r\n */\r\n getAuthToken(): string | null {\r\n return this.authToken;\r\n }\r\n\r\n /**\r\n * GET request\r\n */\r\n async get<T>(url: string, config?: AxiosRequestConfig): Promise<ApiResponse<T>> {\r\n const response: AxiosResponse<ApiResponse<T>> = await this.client.get(url, config);\r\n return response.data;\r\n }\r\n\r\n /**\r\n * POST request\r\n */\r\n async post<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<ApiResponse<T>> {\r\n const response: AxiosResponse<ApiResponse<T>> = await this.client.post(url, data, config);\r\n return response.data;\r\n }\r\n\r\n /**\r\n * PUT request\r\n */\r\n async put<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<ApiResponse<T>> {\r\n const response: AxiosResponse<ApiResponse<T>> = await this.client.put(url, data, config);\r\n return response.data;\r\n }\r\n\r\n /**\r\n * PATCH request\r\n */\r\n async patch<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<ApiResponse<T>> {\r\n const response: AxiosResponse<ApiResponse<T>> = await this.client.patch(url, data, config);\r\n return response.data;\r\n }\r\n\r\n /**\r\n * DELETE request\r\n */\r\n async delete<T>(url: string, config?: AxiosRequestConfig): Promise<ApiResponse<T>> {\r\n const response: AxiosResponse<ApiResponse<T>> = await this.client.delete(url, config);\r\n return response.data;\r\n }\r\n}\r\n","import { HttpClient, ApiResponse, PaginatedResult } from '../../../core';\r\nimport {\r\n QueryApiRequest,\r\n UpdateApiRequest,\r\n ApiConfigResponse,\r\n DashboardModuleItem,\r\n ApiStatisticsResponse,\r\n} from '../types';\r\n\r\n/**\r\n * Service for managing API configurations\r\n * Maps to: ApiController (api.controller.ts)\r\n * Base path: /dashboard-generic/apis\r\n */\r\nexport class ApiService {\r\n private readonly basePath = '/dashboard-generic/apis';\r\n\r\n constructor(private readonly httpClient: HttpClient) {}\r\n\r\n /**\r\n * Get all API configurations with pagination and filtering\r\n * \r\n * @param query - Query parameters for filtering and pagination\r\n * @returns Paginated list of API configurations\r\n * \r\n * @example\r\n * ```typescript\r\n * const result = await apiService.findAll({\r\n * page: 1,\r\n * limit: 10,\r\n * method: 'GET',\r\n * status: 'active',\r\n * });\r\n * ```\r\n */\r\n async findAll(query?: QueryApiRequest): Promise<ApiResponse<PaginatedResult<ApiConfigResponse>>> {\r\n const params = new URLSearchParams();\r\n \r\n if (query) {\r\n Object.entries(query).forEach(([key, value]) => {\r\n if (value !== undefined && value !== null) {\r\n if (Array.isArray(value)) {\r\n value.forEach(v => params.append(key, String(v)));\r\n } else {\r\n params.append(key, String(value));\r\n }\r\n }\r\n });\r\n }\r\n\r\n const queryString = params.toString();\r\n const url = queryString ? `${this.basePath}?${queryString}` : this.basePath;\r\n \r\n return this.httpClient.get<PaginatedResult<ApiConfigResponse>>(url);\r\n }\r\n\r\n /**\r\n * Get API configuration by ID\r\n * \r\n * @param id - API configuration ID (UUID)\r\n * @returns API configuration details\r\n * \r\n * @example\r\n * ```typescript\r\n * const api = await apiService.findOne('123e4567-e89b-12d3-a456-426614174000');\r\n * ```\r\n */\r\n async findOne(id: string): Promise<ApiResponse<ApiConfigResponse>> {\r\n return this.httpClient.get<ApiConfigResponse>(`${this.basePath}/${id}`);\r\n }\r\n\r\n /**\r\n * Get API configuration by code\r\n * \r\n * @param code - API configuration code\r\n * @returns API configuration details\r\n * \r\n * @example\r\n * ```typescript\r\n * const api = await apiService.findByCode('getUser');\r\n * ```\r\n */\r\n async findByCode(code: string): Promise<ApiResponse<ApiConfigResponse>> {\r\n return this.httpClient.get<ApiConfigResponse>(`${this.basePath}/by-code/${code}`);\r\n }\r\n\r\n /**\r\n * Update API configuration\r\n * \r\n * @param id - API configuration ID (UUID)\r\n * @param data - Update data\r\n * @returns Updated API configuration\r\n * \r\n * @example\r\n * ```typescript\r\n * const updated = await apiService.update('123e4567-e89b-12d3-a456-426614174000', {\r\n * status: 'inactive',\r\n * timeoutMs: 60000,\r\n * });\r\n * ```\r\n */\r\n async update(id: string, data: UpdateApiRequest): Promise<ApiResponse<ApiConfigResponse>> {\r\n return this.httpClient.put<ApiConfigResponse>(`${this.basePath}/${id}`, data);\r\n }\r\n\r\n /**\r\n * Delete API configuration\r\n * \r\n * @param id - API configuration ID (UUID)\r\n * @returns Null on success\r\n * \r\n * @example\r\n * ```typescript\r\n * await apiService.remove('123e4567-e89b-12d3-a456-426614174000');\r\n * ```\r\n */\r\n async remove(id: string): Promise<ApiResponse<null>> {\r\n return this.httpClient.delete<null>(`${this.basePath}/${id}`);\r\n }\r\n\r\n /**\r\n * Get list of available dashboard modules\r\n * \r\n * @returns List of dashboard modules with multi-language labels\r\n * \r\n * @example\r\n * ```typescript\r\n * const modules = await apiService.getModules();\r\n * // [{ value: 'MARKETING', label: { vi: 'Marketing', en: 'Marketing' } }, ...]\r\n * ```\r\n */\r\n async getModules(): Promise<ApiResponse<DashboardModuleItem[]>> {\r\n return this.httpClient.get<DashboardModuleItem[]>(`${this.basePath}/modules/list`);\r\n }\r\n\r\n /**\r\n * Get API statistics\r\n * \r\n * @returns Statistics and overview information about API configurations\r\n * \r\n * @example\r\n * ```typescript\r\n * const stats = await apiService.getStatistics();\r\n * console.log(stats.result.totalApis);\r\n * console.log(stats.result.apisByMethod);\r\n * ```\r\n */\r\n async getStatistics(): Promise<ApiResponse<ApiStatisticsResponse>> {\r\n return this.httpClient.get<ApiStatisticsResponse>(`${this.basePath}/statistics/overview`);\r\n }\r\n}\r\n","import { HttpClient, ApiResponse, PaginatedResult } from '../../../core';\r\nimport {\r\n CreatePageTemplateRequest,\r\n UpdatePageTemplateRequest,\r\n QueryPageTemplateRequest,\r\n RenamePageTemplateRequest,\r\n AssociateApisRequest,\r\n CreateFromTemplateRequest,\r\n CreateTemplateWithDataRequest,\r\n PageTemplateResponse,\r\n} from '../types';\r\n\r\n/**\r\n * Service for managing Page Templates\r\n * Maps to: PageTemplateController (page-template.controller.ts)\r\n * Base path: /dashboard-generic/page-templates\r\n */\r\nexport class PageTemplateService {\r\n private readonly basePath = '/dashboard-generic/page-templates';\r\n\r\n constructor(private readonly httpClient: HttpClient) {}\r\n\r\n /**\r\n * Create a new Page Template\r\n * \r\n * @param data - Page template creation data\r\n * @returns Created page template\r\n * \r\n * @example\r\n * ```typescript\r\n * const template = await pageTemplateService.create({\r\n * name: 'Customer Dashboard',\r\n * code: 'export default function Page({ apis }) { return <div>Hello</div>; }',\r\n * description: 'Dashboard for customer analytics',\r\n * tags: ['customer', 'dashboard'],\r\n * apiIds: ['123e4567-e89b-12d3-a456-426614174000'],\r\n * });\r\n * ```\r\n */\r\n async create(data: CreatePageTemplateRequest): Promise<ApiResponse<PageTemplateResponse>> {\r\n return this.httpClient.post<PageTemplateResponse>(this.basePath, data);\r\n }\r\n\r\n /**\r\n * Get all Page Templates with pagination and filtering\r\n * \r\n * @param query - Query parameters for filtering and pagination\r\n * @returns Paginated list of page templates\r\n * \r\n * @example\r\n * ```typescript\r\n * const result = await pageTemplateService.findAll({\r\n * page: 1,\r\n * limit: 10,\r\n * status: 'active',\r\n * type: 'USER',\r\n * });\r\n * ```\r\n */\r\n async findAll(query?: QueryPageTemplateRequest): Promise<ApiResponse<PaginatedResult<PageTemplateResponse>>> {\r\n const params = new URLSearchParams();\r\n \r\n if (query) {\r\n Object.entries(query).forEach(([key, value]) => {\r\n if (value !== undefined && value !== null) {\r\n if (Array.isArray(value)) {\r\n value.forEach(v => params.append(key, String(v)));\r\n } else {\r\n params.append(key, String(value));\r\n }\r\n }\r\n });\r\n }\r\n\r\n const queryString = params.toString();\r\n const url = queryString ? `${this.basePath}?${queryString}` : this.basePath;\r\n \r\n return this.httpClient.get<PaginatedResult<PageTemplateResponse>>(url);\r\n }\r\n\r\n /**\r\n * Get Page Template by ID\r\n * \r\n * @param id - Page template ID (UUID)\r\n * @returns Page template details\r\n * \r\n * @example\r\n * ```typescript\r\n * const template = await pageTemplateService.findOne('123e4567-e89b-12d3-a456-426614174000');\r\n * ```\r\n */\r\n async findOne(id: string): Promise<ApiResponse<PageTemplateResponse>> {\r\n return this.httpClient.get<PageTemplateResponse>(`${this.basePath}/${id}`);\r\n }\r\n\r\n /**\r\n * Update Page Template\r\n * \r\n * @param id - Page template ID (UUID)\r\n * @param data - Update data\r\n * @returns Updated page template\r\n * \r\n * @example\r\n * ```typescript\r\n * const updated = await pageTemplateService.update('123e4567-e89b-12d3-a456-426614174000', {\r\n * name: 'Updated Dashboard',\r\n * code: 'export default function Page({ apis }) { return <div>Updated</div>; }',\r\n * });\r\n * ```\r\n */\r\n async update(id: string, data: UpdatePageTemplateRequest): Promise<ApiResponse<PageTemplateResponse>> {\r\n return this.httpClient.put<PageTemplateResponse>(`${this.basePath}/${id}`, data);\r\n }\r\n\r\n /**\r\n * Rename Page Template\r\n * \r\n * @param id - Page template ID (UUID)\r\n * @param name - New name for the template\r\n * @returns Updated page template\r\n * \r\n * @example\r\n * ```typescript\r\n * const renamed = await pageTemplateService.rename('123e4567-e89b-12d3-a456-426614174000', 'New Dashboard Name');\r\n * ```\r\n */\r\n async rename(id: string, name: string): Promise<ApiResponse<PageTemplateResponse>> {\r\n const data: RenamePageTemplateRequest = { name };\r\n return this.httpClient.patch<PageTemplateResponse>(`${this.basePath}/${id}/rename`, data);\r\n }\r\n\r\n /**\r\n * Delete Page Template\r\n * \r\n * @param id - Page template ID (UUID)\r\n * @returns Null on success\r\n * \r\n * @example\r\n * ```typescript\r\n * await pageTemplateService.remove('123e4567-e89b-12d3-a456-426614174000');\r\n * ```\r\n */\r\n async remove(id: string): Promise<ApiResponse<null>> {\r\n return this.httpClient.delete<null>(`${this.basePath}/${id}`);\r\n }\r\n\r\n /**\r\n * Associate APIs with a page template\r\n * \r\n * @param id - Page template ID (UUID)\r\n * @param apiIds - List of API IDs to associate\r\n * @returns Null on success\r\n * \r\n * @example\r\n * ```typescript\r\n * await pageTemplateService.associateApis('123e4567-e89b-12d3-a456-426614174000', [\r\n * '456e7890-e89b-12d3-a456-426614174001',\r\n * '789e0123-e89b-12d3-a456-426614174002',\r\n * ]);\r\n * ```\r\n */\r\n async associateApis(id: string, apiIds: string[]): Promise<ApiResponse<null>> {\r\n const data: AssociateApisRequest = { apiIds };\r\n return this.httpClient.post<null>(`${this.basePath}/${id}/apis`, data);\r\n }\r\n\r\n /**\r\n * Create Page Template from System Template\r\n * \r\n * @param templateId - System template ID (UUID) to copy from\r\n * @param customization - Optional customization for the new template\r\n * @returns Created page template\r\n * \r\n * @example\r\n * ```typescript\r\n * const template = await pageTemplateService.createFromTemplate(\r\n * '123e4567-e89b-12d3-a456-426614174000',\r\n * { name: 'My Custom Dashboard', description: 'Customized version' }\r\n * );\r\n * ```\r\n */\r\n async createFromTemplate(\r\n templateId: string,\r\n customization?: CreateFromTemplateRequest\r\n ): Promise<ApiResponse<PageTemplateResponse>> {\r\n return this.httpClient.post<PageTemplateResponse>(\r\n `${this.basePath}/from-template/${templateId}`,\r\n customization || {}\r\n );\r\n }\r\n\r\n /**\r\n * Create Page Template with Template Data\r\n * \r\n * @param data - Template creation request with templateData structure\r\n * @returns Created page template\r\n * \r\n * @example\r\n * ```typescript\r\n * const template = await pageTemplateService.createWithTemplateData({\r\n * templateData: {\r\n * name: 'Customer Dashboard',\r\n * code: 'export default function Page({ apis }) { return <div>Dashboard</div>; }',\r\n * description: 'A comprehensive dashboard',\r\n * },\r\n * apiIds: ['123e4567-e89b-12d3-a456-426614174000'],\r\n * userCustomToolIds: ['789e0123-e89b-12d3-a456-426614174000'],\r\n * });\r\n * ```\r\n */\r\n async createWithTemplateData(data: CreateTemplateWithDataRequest): Promise<ApiResponse<PageTemplateResponse>> {\r\n return this.httpClient.post<PageTemplateResponse>(`${this.basePath}/with-template-data`, data);\r\n }\r\n}\r\n","import { HttpClient, ApiResponse } from '../../../core';\r\nimport {\r\n ExecuteApiRequest,\r\n ExecuteApiResponse,\r\n ExecuteResourceRequest,\r\n ResourceExecutionResult,\r\n} from '../types';\r\n\r\n/**\r\n * Service for executing dashboard APIs and resources\r\n * Maps to: ExecuteApiController (execute-api.controller.ts)\r\n * Base path: /dashboard-generic/execute\r\n */\r\nexport class ExecuteApiService {\r\n private readonly basePath = '/dashboard-generic/execute';\r\n\r\n constructor(private readonly httpClient: HttpClient) {}\r\n\r\n /**\r\n * Execute multiple dashboard APIs\r\n * \r\n * @param request - Execute API request with list of APIs\r\n * @returns Execution results for each API\r\n * \r\n * @example\r\n * ```typescript\r\n * const result = await executeApiService.execute({\r\n * apis: [\r\n * {\r\n * module: 'BUSINESS',\r\n * code: 'BUSINESS_REVENUE_OVERVIEW',\r\n * type: 'overview',\r\n * begin: 1704067200000,\r\n * end: 1735689600000,\r\n * },\r\n * {\r\n * module: 'BUSINESS',\r\n * code: 'BUSINESS_REVENUE_PIECHART',\r\n * type: 'piechart',\r\n * begin: 1704067200000,\r\n * end: 1735689600000,\r\n * },\r\n * ],\r\n * });\r\n * ```\r\n */\r\n async execute(request: ExecuteApiRequest): Promise<ApiResponse<ExecuteApiResponse>> {\r\n return this.httpClient.post<ExecuteApiResponse>(this.basePath, request);\r\n }\r\n\r\n /**\r\n * Execute resources (single or batch)\r\n * Supports unified resourceId format and legacy format\r\n * \r\n * Resource ID Format: \"prefix:uuid\"\r\n * - pta:uuid - PageTemplateApiEntity\r\n * - api:uuid - API Entity\r\n * - tool:uuid - Custom Tool\r\n * \r\n * @param request - Execute resource request\r\n * @returns Array of execution results\r\n * \r\n * @example Single execution with unified resourceId\r\n * ```typescript\r\n * const result = await executeApiService.executeResource({\r\n * resourceId: 'api:660e8400-e29b-41d4-a716-446655440001',\r\n * parameters: {\r\n * query_param: { filter: 'recent' },\r\n * body: { name: 'Test' },\r\n * },\r\n * });\r\n * ```\r\n * \r\n * @example Batch execution\r\n * ```typescript\r\n * const result = await executeApiService.executeResource({\r\n * resources: [\r\n * {\r\n * resourceId: 'pta:550e8400-e29b-41d4-a716-446655440000',\r\n * parameters: { query_param: { page: 1 } },\r\n * },\r\n * {\r\n * resourceId: 'api:660e8400-e29b-41d4-a716-446655440001',\r\n * parameters: { query_param: { limit: 20 } },\r\n * },\r\n * {\r\n * resourceId: 'tool:770e8400-e29b-41d4-a716-446655440002',\r\n * integrationId: '880e8400-e29b-41d4-a716-446655440003',\r\n * parameters: { body: { name: 'Test' } },\r\n * },\r\n * ],\r\n * });\r\n * ```\r\n * \r\n * @example Legacy format (deprecated)\r\n * ```typescript\r\n * const result = await executeApiService.executeResource({\r\n * pageTemplateApiId: '550e8400-e29b-41d4-a716-446655440000',\r\n * parameters: { query_param: { page: 1, limit: 10 } },\r\n * });\r\n * ```\r\n */\r\n async executeResource(request: ExecuteResourceRequest): Promise<ApiResponse<ResourceExecutionResult[]>> {\r\n return this.httpClient.post<ResourceExecutionResult[]>(`${this.basePath}/resource`, request);\r\n }\r\n\r\n /**\r\n * Helper: Execute single API resource\r\n * \r\n * @param apiId - API entity ID\r\n * @param parameters - Input parameters\r\n * @returns Execution result\r\n */\r\n async executeApi(apiId: string, parameters?: Record<string, unknown>): Promise<ApiResponse<ResourceExecutionResult[]>> {\r\n return this.executeResource({\r\n resourceId: `api:${apiId}`,\r\n parameters,\r\n });\r\n }\r\n\r\n /**\r\n * Helper: Execute single PageTemplateApi resource\r\n * \r\n * @param pageTemplateApiId - PageTemplateApi entity ID\r\n * @param parameters - Input parameters\r\n * @returns Execution result\r\n */\r\n async executePageTemplateApi(\r\n pageTemplateApiId: string,\r\n parameters?: Record<string, unknown>\r\n ): Promise<ApiResponse<ResourceExecutionResult[]>> {\r\n return this.executeResource({\r\n resourceId: `pta:${pageTemplateApiId}`,\r\n parameters,\r\n });\r\n }\r\n\r\n /**\r\n * Helper: Execute single Custom Tool resource\r\n * \r\n * @param customToolId - Custom tool ID\r\n * @param integrationId - Integration ID for OAuth\r\n * @param parameters - Input parameters\r\n * @returns Execution result\r\n */\r\n async executeCustomTool(\r\n customToolId: string,\r\n integrationId: string,\r\n parameters?: Record<string, unknown>\r\n ): Promise<ApiResponse<ResourceExecutionResult[]>> {\r\n return this.executeResource({\r\n resourceId: `tool:${customToolId}`,\r\n integrationId,\r\n parameters,\r\n });\r\n }\r\n}\r\n","import { HttpClient, ApiResponse } from '../../../core';\r\nimport {\r\n GeneratePageFromAiRequest,\r\n GeneratePageFromAiResponse,\r\n} from '../types';\r\n\r\n/**\r\n * Service for AI-powered Page Generation\r\n * Maps to: AiPageGeneratorController (ai-page-generator.controller.ts)\r\n * Base path: /dashboard-generic/ai-page-generator\r\n */\r\nexport class AiPageGeneratorService {\r\n private readonly basePath = '/dashboard-generic/ai-page-generator';\r\n\r\n constructor(private readonly httpClient: HttpClient) {}\r\n\r\n /**\r\n * Generate page template from AI using API definitions\r\n * \r\n * Workflow:\r\n * 1. Lấy thông tin chi tiết của APIs theo IDs\r\n * 2. AI phân tích API schemas và tạo React code phù hợp\r\n * 3. Generate code với React Live compatible code\r\n * 4. Nếu isSave = TRUE: Lưu template vào database\r\n * 5. Nếu isSave = FALSE: Chỉ trả về code để preview\r\n * \r\n * Processing Time: 30-120 giây (tùy độ phức tạp)\r\n * \r\n * @param request - Generate page request\r\n * @returns Generated page template response\r\n * \r\n * @example Generate from existing PageTemplate\r\n * ```typescript\r\n * const result = await aiPageGeneratorService.generate({\r\n * pageTemplateId: '123e4567-e89b-12d3-a456-426614174000',\r\n * prompt: 'Tạo dashboard với line chart hiển thị doanh thu theo thời gian',\r\n * isSave: 'FALSE',\r\n * });\r\n * ```\r\n * \r\n * @example Generate with APIs\r\n * ```typescript\r\n * const result = await aiPageGeneratorService.generate({\r\n * apiIds: ['123e4567-e89b-12d3-a456-426614174000'],\r\n * prompt: 'Tạo dashboard với line chart hiển thị doanh thu theo thời gian',\r\n * pattern: 'self-contained',\r\n * isSave: 'FALSE',\r\n * });\r\n * ```\r\n * \r\n * @example Generate and save template\r\n * ```typescript\r\n * const result = await aiPageGeneratorService.generate({\r\n * apiIds: ['456e7890-e89b-12d3-a456-426614174001'],\r\n * prompt: 'Tạo trang quản lý danh sách khách hàng với bảng dữ liệu',\r\n * pattern: 'self-contained',\r\n * isSave: 'TRUE',\r\n * name: 'Quản Lý Khách Hàng',\r\n * description: 'Trang quản lý danh sách khách hàng',\r\n * });\r\n * ```\r\n */\r\n async generate(request: GeneratePageFromAiRequest): Promise<ApiResponse<GeneratePageFromAiResponse>> {\r\n return this.httpClient.post<GeneratePageFromAiResponse>(`${this.basePath}/generate`, request);\r\n }\r\n\r\n /**\r\n * Generate dashboard from AI with dynamic component builder\r\n * \r\n * Khác biệt với generate():\r\n * - Sử dụng buildDynamicComponentsContent() thay vì buildComponentsContent()\r\n * - Hỗ trợ React 18, TypeScript 5.7, Tailwind CSS 3.3, Recharts 2.15, React Hook Form 7.60\r\n * - Tập trung vào dashboard patterns với charts, tables, forms\r\n * \r\n * Processing Time: 30-120 giây (tùy độ phức tạp)\r\n * \r\n * @param request - Generate dashboard request\r\n * @returns Generated dashboard template response\r\n * \r\n * @example Generate dashboard from existing PageTemplate\r\n * ```typescript\r\n * const result = await aiPageGeneratorService.generateDashboard({\r\n * pageTemplateId: '123e4567-e89b-12d3-a456-426614174000',\r\n * prompt: 'Tạo dashboard với line chart hiển thị doanh thu theo thời gian',\r\n * isSave: 'FALSE',\r\n * });\r\n * ```\r\n * \r\n * @example Generate dashboard with APIs and Custom Tools\r\n * ```typescript\r\n * const result = await aiPageGeneratorService.generateDashboard({\r\n * apiIds: ['123e4567-e89b-12d3-a456-426614174000'],\r\n * userCustomToolIds: ['789e0123-e89b-12d3-a456-426614174000'],\r\n * prompt: 'Tạo dashboard kết hợp APIs và Custom Tools với charts và tables',\r\n * isSave: 'FALSE',\r\n * });\r\n * ```\r\n * \r\n * @example Generate and save dashboard template\r\n * ```typescript\r\n * const result = await aiPageGeneratorService.generateDashboard({\r\n * apiIds: ['456e7890-e89b-12d3-a456-426614174001'],\r\n * prompt: 'Tạo trang quản lý danh sách khách hàng với bảng dữ liệu',\r\n * isSave: 'TRUE',\r\n * name: 'Quản Lý Khách Hàng Dashboard',\r\n * description: 'Dashboard quản lý danh sách khách hàng với dynamic components',\r\n * });\r\n * ```\r\n */\r\n async generateDashboard(request: GeneratePageFromAiRequest): Promise<ApiResponse<GeneratePageFromAiResponse>> {\r\n return this.httpClient.post<GeneratePageFromAiResponse>(`${this.basePath}/generate-dashboard`, request);\r\n }\r\n\r\n /**\r\n * Helper: Generate page with self-contained pattern\r\n * Component tự fetch data với useExecuteResource hook\r\n * \r\n * @param apiIds - List of API IDs\r\n * @param prompt - AI prompt\r\n * @param options - Additional options\r\n */\r\n async generateSelfContained(\r\n apiIds: string[],\r\n prompt: string,\r\n options?: {\r\n name?: string;\r\n description?: string;\r\n isSave?: 'TRUE' | 'FALSE';\r\n }\r\n ): Promise<ApiResponse<GeneratePageFromAiResponse>> {\r\n return this.generate({\r\n apiIds,\r\n prompt,\r\n pattern: 'self-contained',\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * Helper: Generate page with props-driven pattern\r\n * Component nhận data từ props, không tự fetch data\r\n * \r\n * @param apiIds - List of API IDs\r\n * @param prompt - AI prompt\r\n * @param options - Additional options\r\n */\r\n async generatePropsDriven(\r\n apiIds: string[],\r\n prompt: string,\r\n options?: {\r\n name?: string;\r\n description?: string;\r\n isSave?: 'TRUE' | 'FALSE';\r\n }\r\n ): Promise<ApiResponse<GeneratePageFromAiResponse>> {\r\n return this.generate({\r\n apiIds,\r\n prompt,\r\n pattern: 'props-driven',\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * Helper: Generate page with all-in-one pattern\r\n * Component tự fetch data với pageTemplateApiId\r\n * \r\n * @param apiIds - List of API IDs\r\n * @param prompt - AI prompt\r\n * @param options - Additional options\r\n */\r\n async generateAllInOne(\r\n apiIds: string[],\r\n prompt: string,\r\n options?: {\r\n name?: string;\r\n description?: string;\r\n isSave?: 'TRUE' | 'FALSE';\r\n }\r\n ): Promise<ApiResponse<GeneratePageFromAiResponse>> {\r\n return this.generate({\r\n apiIds,\r\n prompt,\r\n pattern: 'all-in-one',\r\n ...options,\r\n });\r\n }\r\n}\r\n","/**\r\n * Common types used across dashboard-generic module\r\n */\r\n\r\n/**\r\n * Multi-language label interface\r\n */\r\nexport interface I18nLabel {\r\n vi?: string;\r\n en?: string;\r\n zh?: string;\r\n [key: string]: string | undefined;\r\n}\r\n\r\n/**\r\n * Sort direction enum\r\n */\r\nexport enum SortDirection {\r\n ASC = 'ASC',\r\n DESC = 'DESC',\r\n}\r\n\r\n/**\r\n * Base query parameters for pagination\r\n */\r\nexport interface QueryParams {\r\n /** Current page number (starts from 1) */\r\n page?: number;\r\n /** Number of records per page */\r\n limit?: number;\r\n /** Search keyword */\r\n search?: string;\r\n /** Fields to search in (comma-separated) */\r\n searchBy?: string;\r\n /** Field to sort by */\r\n sortBy?: string;\r\n /** Sort direction */\r\n sortDirection?: SortDirection;\r\n}\r\n\r\n/**\r\n * HTTP Method types\r\n */\r\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\r\n\r\n/**\r\n * API Status types\r\n */\r\nexport type ApiStatus = 'active' | 'inactive' | 'deprecated';\r\n\r\n/**\r\n * Page Template Status types\r\n */\r\nexport type PageTemplateStatus = 'draft' | 'active' | 'archived';\r\n\r\n/**\r\n * Page Template Type enum\r\n */\r\nexport enum PageTemplateType {\r\n TEMPLATE = 'TEMPLATE',\r\n USER = 'USER',\r\n ADMIN = 'ADMIN',\r\n}\r\n\r\n/**\r\n * Dashboard Module enum\r\n */\r\nexport enum DashboardModule {\r\n BUSINESS = 'BUSINESS',\r\n MARKETING = 'MARKETING',\r\n AGENT = 'AGENT',\r\n RPOINT = 'RPOINT',\r\n DATA = 'DATA',\r\n USER_TOOL_CUSTOM = 'USER_TOOL_CUSTOM',\r\n}\r\n\r\n/**\r\n * Dashboard Chart Type enum\r\n */\r\nexport enum DashboardChartType {\r\n PIECHART = 'PIECHART',\r\n LINECHART = 'LINECHART',\r\n OVERVIEW = 'OVERVIEW',\r\n AREACHART = 'AREACHART',\r\n FUNNELCHART = 'FUNNELCHART',\r\n HEATMAP = 'HEATMAP',\r\n TABLECHART = 'TABLECHART',\r\n TIMELINECHART = 'TIMELINECHART',\r\n COHORTCHART = 'COHORTCHART',\r\n}\r\n\r\n/**\r\n * Layout types for page templates\r\n */\r\nexport type LayoutType = 'default' | 'sidebar' | 'full-width' | 'grid';\r\n\r\n/**\r\n * Auth config type\r\n */\r\nexport type AuthType = 'bearer' | 'api-key' | 'basic' | 'none';\r\n\r\n/**\r\n * Resource type\r\n */\r\nexport type ResourceType = 'api' | 'custom_tool';\r\n\r\n/**\r\n * Resource prefix constants\r\n */\r\nexport const RESOURCE_PREFIX = {\r\n PAGE_TEMPLATE_API: 'pta',\r\n API: 'api',\r\n CUSTOM_TOOL: 'tool',\r\n} as const;\r\n\r\nexport type ResourcePrefix = typeof RESOURCE_PREFIX[keyof typeof RESOURCE_PREFIX];\r\n","import { HttpClient, HttpClientConfig } from '../../core';\r\nimport {\r\n ApiService,\r\n PageTemplateService,\r\n ExecuteApiService,\r\n AiPageGeneratorService,\r\n} from './services';\r\n\r\n// Re-export all types\r\nexport * from './types';\r\n\r\n// Re-export all services\r\nexport * from './services';\r\n\r\n/**\r\n * Dashboard Generic Module Client\r\n * \r\n * Provides access to all dashboard-generic services:\r\n * - ApiService: Manage API configurations\r\n * - PageTemplateService: Manage page templates\r\n * - ExecuteApiService: Execute dashboard APIs and resources\r\n * - AiPageGeneratorService: AI-powered page generation\r\n */\r\nexport class DashboardGenericModule {\r\n /** Service for managing API configurations */\r\n public readonly api: ApiService;\r\n \r\n /** Service for managing page templates */\r\n public readonly pageTemplate: PageTemplateService;\r\n \r\n /** Service for executing dashboard APIs and resources */\r\n public readonly execute: ExecuteApiService;\r\n \r\n /** Service for AI-powered page generation */\r\n public readonly aiPageGenerator: AiPageGeneratorService;\r\n\r\n constructor(httpClient: HttpClient) {\r\n this.api = new ApiService(httpClient);\r\n this.pageTemplate = new PageTemplateService(httpClient);\r\n this.execute = new ExecuteApiService(httpClient);\r\n this.aiPageGenerator = new AiPageGeneratorService(httpClient);\r\n }\r\n}\r\n\r\n/**\r\n * Create Dashboard Generic Module instance\r\n * \r\n * @param config - HTTP client configuration\r\n * @returns DashboardGenericModule instance\r\n * \r\n * @example\r\n * ```typescript\r\n * import { createDashboardGenericModule } from '@redai/api-sdk/dashboard-generic';\r\n * \r\n * const dashboardModule = createDashboardGenericModule({\r\n * baseUrl: 'https://api.example.com',\r\n * });\r\n * \r\n * // Set auth token\r\n * dashboardModule.setAuthToken('your-jwt-token');\r\n * \r\n * // Use services\r\n * const apis = await dashboardModule.api.findAll({ page: 1, limit: 10 });\r\n * const templates = await dashboardModule.pageTemplate.findAll();\r\n * ```\r\n */\r\nexport function createDashboardGenericModule(config: HttpClientConfig): DashboardGenericModule & {\r\n setAuthToken: (token: string) => void;\r\n clearAuthToken: () => void;\r\n} {\r\n const httpClient = new HttpClient(config);\r\n const module = new DashboardGenericModule(httpClient);\r\n \r\n return {\r\n ...module,\r\n api: module.api,\r\n pageTemplate: module.pageTemplate,\r\n execute: module.execute,\r\n aiPageGenerator: module.aiPageGenerator,\r\n setAuthToken: (token: string) => httpClient.setAuthToken(token),\r\n clearAuthToken: () => httpClient.clearAuthToken(),\r\n };\r\n}\r\n","// Core exports\r\nexport * from './core';\r\n\r\n// Module exports\r\nexport * from './modules/dashboard-generic';\r\n\r\nimport { HttpClient, HttpClientConfig } from './core';\r\nimport { DashboardGenericModule } from './modules/dashboard-generic';\r\n\r\n/**\r\n * RedAI API SDK Client\r\n * \r\n * Main entry point for the SDK. Provides access to all modules.\r\n * \r\n * @example\r\n * ```typescript\r\n * import { RedAiSdk } from '@redai/api-sdk';\r\n * \r\n * const sdk = new RedAiSdk({\r\n * baseUrl: 'https://api.example.com',\r\n * });\r\n * \r\n * // Set authentication\r\n * sdk.setAuthToken('your-jwt-token');\r\n * \r\n * // Access dashboard-generic module\r\n * const apis = await sdk.dashboardGeneric.api.findAll();\r\n * const templates = await sdk.dashboardGeneric.pageTemplate.findAll();\r\n * \r\n * // Execute APIs\r\n * const result = await sdk.dashboardGeneric.execute.execute({\r\n * apis: [\r\n * { module: 'BUSINESS', code: 'BUSINESS_REVENUE_OVERVIEW', type: 'overview', begin: 1704067200000, end: 1735689600000 }\r\n * ]\r\n * });\r\n * \r\n * // Generate page with AI\r\n * const generated = await sdk.dashboardGeneric.aiPageGenerator.generate({\r\n * apiIds: ['123e4567-e89b-12d3-a456-426614174000'],\r\n * prompt: 'Create a revenue dashboard with charts',\r\n * isSave: 'FALSE',\r\n * });\r\n * ```\r\n */\r\nexport class RedAiSdk {\r\n private readonly httpClient: HttpClient;\r\n \r\n /** Dashboard Generic Module */\r\n public readonly dashboardGeneric: DashboardGenericModule;\r\n\r\n constructor(config: HttpClientConfig) {\r\n this.httpClient = new HttpClient(config);\r\n this.dashboardGeneric = new DashboardGenericModule(this.httpClient);\r\n }\r\n\r\n /**\r\n * Set authentication token for all API requests\r\n * \r\n * @param token - JWT token\r\n */\r\n setAuthToken(token: string): void {\r\n this.httpClient.setAuthToken(token);\r\n }\r\n\r\n /**\r\n * Clear authentication token\r\n */\r\n clearAuthToken(): void {\r\n this.httpClient.clearAuthToken();\r\n }\r\n\r\n /**\r\n * Get current authentication token\r\n */\r\n getAuthToken(): string | null {\r\n return this.httpClient.getAuthToken();\r\n }\r\n}\r\n\r\n/**\r\n * Create RedAI SDK instance\r\n * \r\n * @param config - SDK configuration\r\n * @returns RedAiSdk instance\r\n * \r\n * @example\r\n * ```typescript\r\n * import { createRedAiSdk } from '@redai/api-sdk';\r\n * \r\n * const sdk = createRedAiSdk({\r\n * baseUrl: 'https://api.example.com',\r\n * timeout: 30000,\r\n * });\r\n * \r\n * sdk.setAuthToken('your-jwt-token');\r\n * ```\r\n */\r\nexport function createRedAiSdk(config: HttpClientConfig): RedAiSdk {\r\n return new RedAiSdk(config);\r\n}\r\n\r\n// Default export\r\nexport default RedAiSdk;\r\n"]}