# @carthooks/client-ts > Carthooks TypeScript API Client with full type safety and middleware support ## Overview A comprehensive TypeScript client for Carthooks API with full type safety and middleware support. This package provides business API access. For authentication, third-party applications should use OAuth client tokens. ## Installation ```bash npm install @carthooks/client-ts ``` ## Quick Start ```typescript import { ApiClient, initDefaultClient, adminApi, userApi } from '@carthooks/client-ts' import { authMiddleware, formDataMiddleware } from './middlewares' // Create and configure client const apiClient = new ApiClient({ baseURL: '/api', timeout: 10000 }) // Add middlewares apiClient .addMiddleware(authMiddleware) .addMiddleware(formDataMiddleware) // Set as default client initDefaultClient(apiClient) // Set store (for auth middleware) apiClient.setStore(userStore) // Use APIs const data = await userApi.getEntry() const apps = await adminApi.getApps() ``` ## Architecture ### Core Components - **ApiClient**: HTTP client with middleware support - **Middleware**: Request/response interceptors - **Factory**: Default client management - **API Modules**: Organized by feature area ### API Modules #### adminApi See [llms/admin-api.txt](llms/admin-api.txt) for detailed API reference. Total APIs: **168** functions Files: - `app-entity-share`: src/api/admin/app-entity-share.ts - `app`: src/api/admin/app.ts - `automate-rule`: src/api/admin/automate-rule.ts - `business-hooks`: src/api/admin/business-hooks.ts - `config`: src/api/admin/config.ts - `dashboard`: src/api/admin/dashboard.ts - `dataset`: src/api/admin/dataset.ts - `departments`: src/api/admin/departments.ts - `developer`: src/api/admin/developer.ts - `entity-tags`: src/api/admin/entity-tags.ts - `entity`: src/api/admin/entity.ts - `extension`: src/api/admin/extension.ts - `ingress`: src/api/admin/ingress.ts - `integration`: src/api/admin/integration.ts - `kiosk-flow`: src/api/admin/kiosk-flow.ts - `print-template-background`: src/api/admin/print-template-background.ts - `print-templates`: src/api/admin/print-templates.ts - `tenant`: src/api/admin/tenant.ts - `workflow`: src/api/admin/workflow.ts #### kioskApi See [llms/kiosk-api.txt](llms/kiosk-api.txt) for detailed API reference. Total APIs: **10** functions Files: - `starter`: src/api/kiosk/starter.ts - `ui`: src/api/kiosk/ui.ts #### openApi See [llms/open-api.txt](llms/open-api.txt) for detailed API reference. Total APIs: **1** functions Files: - `api`: src/api/open/api.ts #### shared-linkApi See [llms/shared-link-api.txt](llms/shared-link-api.txt) for detailed API reference. Total APIs: **10** functions Files: - `form`: src/api/shared-link/form.ts #### userApi See [llms/user-api.txt](llms/user-api.txt) for detailed API reference. Total APIs: **77** functions Files: - `common`: src/api/user/common.ts - `context`: src/api/user/context.ts - `copilot`: src/api/user/copilot.ts - `dashboard`: src/api/user/dashboard.ts - `entity`: src/api/user/entity.ts - `flow`: src/api/user/flow.ts - `global-action`: src/api/user/global-action.ts - `kiosk`: src/api/user/kiosk.ts - `profile`: src/api/user/profile.ts - `workflow`: src/api/user/workflow.ts ## Core Files - [ApiClient](src/client.ts): Main HTTP client with middleware chain - [Factory](src/factory.ts): Default client initialization - [Types](src/types/index.ts): Shared type definitions - [Upload](src/upload/index.ts): File upload utilities ## Type Safety All APIs are fully typed with TypeScript. Import types from the package: ```typescript import type { ApiResponse, ApiError, Middleware, MiddlewareContext } from '@carthooks/client-ts' ``` ## Middleware System Create custom middlewares: ```typescript export const myMiddleware: Middleware = async (context, next) => { // Before request console.log('Request:', context.config) const result = await next() // After response console.log('Response:', context.response) return result } ``` ## Version 0.1.0 ## License MIT