{"_id":"@teliagen/client","_rev":"27-bc0a09a11716992ca65c05966d169323","name":"@teliagen/client","dist-tags":{"latest":"0.4.2"},"versions":{"0.4.0":{"name":"@teliagen/client","version":"0.4.0","author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"license":"Apache-2.0","_id":"@teliagen/client@0.4.0","maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"homepage":"https://docs.teliagen.org","bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"dist":{"shasum":"d5dc19d81deefd5306db338ebc3ae4b77648271f","tarball":"https://registry.npmjs.org/@teliagen/client/-/client-0.4.0.tgz","fileCount":8,"integrity":"sha512-Pv/knWdSxaK4IG3gCCPyoOKjdVCI+R0rFVvJzO9qSwpHlaAnIphPlaFkyDIjsJxr4tXrA7i8iFEpVWCvDfYMow==","signatures":[{"sig":"MEUCIQDRMjYP/0NYGXpCgecFkGiE3r/KmSo5m4FbMR+IQSGruwIgIAZelaiSe+od3GipsiCdt/6SxdsDQSUv1J4OjvsdB6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23874},"main":"./dist/index.js","type":"module","_from":"file:teliagen-client-0.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"private":false,"scripts":{"dev":"tsc --watch","build":"tsc"},"_npmUser":{"name":"teliagen_off","email":"admin@teliagen.org"},"_resolved":"C:\\Users\\ABDOUL~1\\AppData\\Local\\Temp\\9c056f46f932d34f99ba292c6c705579\\teliagen-client-0.4.0.tgz","_integrity":"sha512-Pv/knWdSxaK4IG3gCCPyoOKjdVCI+R0rFVvJzO9qSwpHlaAnIphPlaFkyDIjsJxr4tXrA7i8iFEpVWCvDfYMow==","repository":{"url":"git+https://github.com/teliagen/teliagen-framework.git","type":"git","directory":"packages/client"},"_npmVersion":"11.6.2","description":"Universal Core Client for Teliagen Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.7"},"_npmOperationalInternal":{"tmp":"tmp/client_0.4.0_1770857820570_0.9906175136187156","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@teliagen/client","version":"0.4.1","author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"license":"Apache-2.0","_id":"@teliagen/client@0.4.1","maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"homepage":"https://docs.teliagen.org","bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"dist":{"shasum":"297761c1e01ce9ecb16b8910651d38285c968d18","tarball":"https://registry.npmjs.org/@teliagen/client/-/client-0.4.1.tgz","fileCount":8,"integrity":"sha512-MABWM2uyy1HeY97Csimkp1O4JIaukTdznCxfzax6+rSBnDi1IzMZ77pAuCH6XLkSw7yFtybA8rI0sxN4CyhDVQ==","signatures":[{"sig":"MEUCIQDoZePg91kjSemGx/nJHZenn3EOW+A2rlMjKLoOYTOUhgIgadAYhQXX1AV8AkqF2vt/AYWNWGVjvUZ5ehL4raxDrec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23874},"main":"./dist/index.js","type":"module","_from":"file:teliagen-client-0.4.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"private":false,"scripts":{"dev":"tsc --watch","build":"tsc"},"_npmUser":{"name":"teliagen_off","email":"admin@teliagen.org"},"_resolved":"C:\\Users\\ABDOUL~1\\AppData\\Local\\Temp\\7b605173c3add45db97a43a3002e021f\\teliagen-client-0.4.1.tgz","_integrity":"sha512-MABWM2uyy1HeY97Csimkp1O4JIaukTdznCxfzax6+rSBnDi1IzMZ77pAuCH6XLkSw7yFtybA8rI0sxN4CyhDVQ==","repository":{"url":"git+https://github.com/teliagen/teliagen-framework.git","type":"git","directory":"packages/client"},"_npmVersion":"11.6.2","description":"Universal Core Client for Teliagen Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.7"},"_npmOperationalInternal":{"tmp":"tmp/client_0.4.1_1770923462826_0.70038878441836","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@teliagen/client","version":"0.4.2","private":false,"publishConfig":{"access":"public"},"type":"module","description":"Universal Core Client for Teliagen Framework","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"repository":{"type":"git","url":"git+https://github.com/teliagen/teliagen-framework.git","directory":"packages/client"},"homepage":"https://docs.teliagen.org","bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"license":"Apache-2.0","dependencies":{"axios":"^1.6.0"},"devDependencies":{"@types/node":"^22.10.7","typescript":"^5.7.3"},"scripts":{"build":"tsc","dev":"tsc --watch"},"_id":"@teliagen/client@0.4.2","_integrity":"sha512-rQulY+/v5syp9wbR3cmcUzxNTxZzXL95WOacn6ZCWkHQIjBBM+MP+A6XoEyjAK8a5XccxDPej0qUruhG4DMUiA==","_resolved":"C:\\Users\\ABDOUL~1\\AppData\\Local\\Temp\\9a5708e2ff90a2acbd72bc5ad286079d\\teliagen-client-0.4.2.tgz","_from":"file:teliagen-client-0.4.2.tgz","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-rQulY+/v5syp9wbR3cmcUzxNTxZzXL95WOacn6ZCWkHQIjBBM+MP+A6XoEyjAK8a5XccxDPej0qUruhG4DMUiA==","shasum":"6e80d7c9c2fd9d1b6d14b5f0daa4756a710d4c75","tarball":"https://registry.npmjs.org/@teliagen/client/-/client-0.4.2.tgz","fileCount":8,"unpackedSize":23874,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC+4k+trFiqzStFT+roUclgfK7kdiSLkqRBxNRs0oKgUgIhAI+hFyCWvYIrVPYKR6MCqkg1ZVFguEjIa5TihSok5v9K"}]},"_npmUser":{"name":"teliagen_off","email":"admin@teliagen.org"},"directories":{},"maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/client_0.4.2_1770925134494_0.11207524183077511"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-12T00:57:00.491Z","modified":"2026-02-12T19:38:54.816Z","0.1.0":"2026-01-19T19:17:18.850Z","0.1.1":"2026-01-19T19:55:45.592Z","0.1.2":"2026-01-19T21:14:16.210Z","0.1.3":"2026-01-19T21:27:13.057Z","0.1.4":"2026-01-25T07:46:39.557Z","0.1.5":"2026-01-25T16:04:13.210Z","0.1.6":"2026-01-25T23:49:11.151Z","0.1.7":"2026-01-26T00:07:09.907Z","0.1.8":"2026-01-26T00:10:40.491Z","0.1.9":"2026-01-26T00:14:08.667Z","0.1.10":"2026-01-26T00:18:24.484Z","0.1.11":"2026-01-26T00:39:39.919Z","0.1.12":"2026-01-26T00:52:32.271Z","0.1.13":"2026-01-26T00:56:48.671Z","0.1.15":"2026-01-26T01:17:10.855Z","0.1.16":"2026-01-26T01:21:43.520Z","0.1.17":"2026-01-26T01:42:48.204Z","0.1.18":"2026-01-26T02:16:23.470Z","0.1.19":"2026-01-26T02:25:53.100Z","0.4.0":"2026-02-12T00:57:00.726Z","0.4.1":"2026-02-12T19:11:02.965Z","0.4.2":"2026-02-12T19:38:54.684Z"},"bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"license":"Apache-2.0","homepage":"https://docs.teliagen.org","repository":{"type":"git","url":"git+https://github.com/teliagen/teliagen-framework.git","directory":"packages/client"},"description":"Universal Core Client for Teliagen Framework","maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"readme":"# @teliagen/client\r\n\r\n> Universal HTTP client for Teliagen applications.\r\n\r\n[![npm version](https://img.shields.io/npm/v/@teliagen/client.svg)](https://www.npmjs.com/package/@teliagen/client)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\r\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\r\n\r\n## Overview\r\n\r\n`@teliagen/client` provides a lightweight HTTP transport for calling Teliagen actions:\r\n\r\n- **Universal** – Works in Node.js and browsers\r\n- **Type-Safe** – Full TypeScript support\r\n- **Simple API** – Call actions by name with typed inputs\r\n- **Configurable** – Custom headers, auth, interceptors\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @teliagen/client\r\n# or\r\npnpm add @teliagen/client\r\n```\r\n\r\n## Quick Start\r\n\r\n```typescript\r\nimport { TeliagenTransport } from '@teliagen/client';\r\n\r\nconst client = new TeliagenTransport({\r\n  baseUrl: 'http://localhost:3000/api'\r\n});\r\n\r\n// Call an action\r\nconst user = await client.execute<LoginInput, LoginOutput>(\r\n  'login',\r\n  { email: 'user@example.com', password: 'secret' }\r\n);\r\n\r\nconsole.log(user.token);\r\n```\r\n\r\n## Configuration\r\n\r\n```typescript\r\ninterface TeliagenClientConfig {\r\n  // Required\r\n  baseUrl: string;              // API base URL\r\n  \r\n  // Optional\r\n  headers?: Record<string, string>;  // Default headers\r\n  timeout?: number;             // Request timeout (ms)\r\n  \r\n  // Authentication\r\n  token?: string;               // Bearer token\r\n  apiKey?: string;              // API key header\r\n  \r\n  // Callbacks\r\n  onError?: (error: any) => void;\r\n  onRequest?: (config: any) => any;\r\n  onResponse?: (response: any) => any;\r\n}\r\n```\r\n\r\n## Examples\r\n\r\n### Basic Usage\r\n\r\n```typescript\r\nimport { TeliagenTransport } from '@teliagen/client';\r\n\r\nconst client = new TeliagenTransport({\r\n  baseUrl: 'http://localhost:3000/api'\r\n});\r\n\r\n// Simple action call\r\nconst users = await client.execute('listUsers', {});\r\n\r\n// With types\r\ninterface CreateUserInput {\r\n  email: string;\r\n  name: string;\r\n}\r\n\r\ninterface User {\r\n  id: string;\r\n  email: string;\r\n  name: string;\r\n}\r\n\r\nconst newUser = await client.execute<CreateUserInput, User>(\r\n  'createUser',\r\n  { email: 'alice@example.com', name: 'Alice' }\r\n);\r\n```\r\n\r\n### With Authentication\r\n\r\n```typescript\r\nconst client = new TeliagenTransport({\r\n  baseUrl: 'http://localhost:3000/api',\r\n  token: localStorage.getItem('authToken')\r\n});\r\n\r\n// Token is sent as: Authorization: Bearer <token>\r\n\r\n// Or use API key\r\nconst client = new TeliagenTransport({\r\n  baseUrl: 'http://localhost:3000/api',\r\n  apiKey: 'your-api-key'\r\n});\r\n\r\n// API key is sent as: x-teliagen-key: <apiKey>\r\n```\r\n\r\n### Module and Provider Routing\r\n\r\n```typescript\r\n// Call action in specific module/provider\r\nconst result = await client.execute(\r\n  'getOrderDetails',\r\n  { orderId: '123' },\r\n  {\r\n    module: 'orders',\r\n    provider: 'OrderActions'\r\n  }\r\n);\r\n\r\n// Calls: POST /api/actions/getOrderDetails\r\n// Headers: x-teliagen-module: orders\r\n//          x-teliagen-provider: OrderActions\r\n```\r\n\r\n### Cross-Service Calls\r\n\r\n```typescript\r\n// Call action on a federated service\r\nconst result = await client.execute(\r\n  'processPayment',\r\n  { amount: 99.99 },\r\n  {\r\n    server: 'payments'\r\n  }\r\n);\r\n\r\n// Calls: POST /api/actions/processPayment\r\n// Headers: x-teliagen-server: payments\r\n```\r\n\r\n### Dynamic Token\r\n\r\n```typescript\r\nconst client = new TeliagenTransport({\r\n  baseUrl: 'http://localhost:3000/api',\r\n  onRequest: (config) => {\r\n    // Add fresh token on each request\r\n    const token = localStorage.getItem('authToken');\r\n    if (token) {\r\n      config.headers['Authorization'] = `Bearer ${token}`;\r\n    }\r\n    return config;\r\n  }\r\n});\r\n```\r\n\r\n### Error Handling\r\n\r\n```typescript\r\nconst client = new TeliagenTransport({\r\n  baseUrl: 'http://localhost:3000/api',\r\n  onError: (error) => {\r\n    if (error.response?.status === 401) {\r\n      // Redirect to login\r\n      window.location.href = '/login';\r\n    }\r\n  }\r\n});\r\n\r\ntry {\r\n  const result = await client.execute('protectedAction', {});\r\n} catch (error) {\r\n  console.error('Action failed:', error.message);\r\n}\r\n```\r\n\r\n## TeliagenTransport API\r\n\r\n```typescript\r\nclass TeliagenTransport {\r\n  constructor(config: TeliagenClientConfig);\r\n  \r\n  // Execute an action\r\n  execute<TInput, TOutput>(\r\n    action: string,\r\n    input: TInput,\r\n    options?: {\r\n      module?: string;\r\n      provider?: string;\r\n      server?: string;\r\n      prefix?: string;\r\n      headers?: Record<string, string>;\r\n    }\r\n  ): Promise<TOutput>;\r\n  \r\n  // Update configuration\r\n  setToken(token: string): void;\r\n  setHeader(key: string, value: string): void;\r\n  removeHeader(key: string): void;\r\n}\r\n```\r\n\r\n## Response Types\r\n\r\n```typescript\r\ninterface TeliagenResponse<T> {\r\n  data: T;\r\n  status: number;\r\n  headers: Record<string, string>;\r\n}\r\n\r\n// The execute method returns the data directly\r\n// For full response, use executeRaw:\r\nconst response = await client.executeRaw<Input, Output>('action', input);\r\nconsole.log(response.status);  // 200\r\nconsole.log(response.data);    // { ... }\r\n```\r\n\r\n## Browser Usage\r\n\r\n```html\r\n<script src=\"https://cdn.example.com/@teliagen/client/dist/client.umd.js\"></script>\r\n<script>\r\n  const client = new TeliagenClient.TeliagenTransport({\r\n    baseUrl: 'http://localhost:3000/api'\r\n  });\r\n  \r\n  client.execute('listProducts', {})\r\n    .then(products => console.log(products));\r\n</script>\r\n```\r\n\r\n## Integration with Frameworks\r\n\r\n### React\r\n\r\nUse [@teliagen/react](../react) for React integration with hooks.\r\n\r\n### Vue\r\n\r\n```typescript\r\n// composables/useTeliagen.ts\r\nimport { ref } from 'vue';\r\nimport { TeliagenTransport } from '@teliagen/client';\r\n\r\nconst client = new TeliagenTransport({\r\n  baseUrl: import.meta.env.VITE_API_URL\r\n});\r\n\r\nexport function useAction<TInput, TOutput>(action: string) {\r\n  const data = ref<TOutput>();\r\n  const loading = ref(false);\r\n  const error = ref<Error>();\r\n\r\n  const execute = async (input: TInput) => {\r\n    loading.value = true;\r\n    try {\r\n      data.value = await client.execute<TInput, TOutput>(action, input);\r\n    } catch (e) {\r\n      error.value = e as Error;\r\n    } finally {\r\n      loading.value = false;\r\n    }\r\n  };\r\n\r\n  return { data, loading, error, execute };\r\n}\r\n```\r\n\r\n### Svelte\r\n\r\n```typescript\r\n// stores/teliagen.ts\r\nimport { writable } from 'svelte/store';\r\nimport { TeliagenTransport } from '@teliagen/client';\r\n\r\nexport const client = new TeliagenTransport({\r\n  baseUrl: import.meta.env.VITE_API_URL\r\n});\r\n\r\nexport function createActionStore<TInput, TOutput>(action: string) {\r\n  const { subscribe, set } = writable<TOutput | null>(null);\r\n  \r\n  return {\r\n    subscribe,\r\n    execute: async (input: TInput) => {\r\n      const result = await client.execute<TInput, TOutput>(action, input);\r\n      set(result);\r\n      return result;\r\n    }\r\n  };\r\n}\r\n```\r\n\r\n## Requirements\r\n\r\n- **Node.js** >= 18.0.0 (for Node.js usage)\r\n- **Modern browser** (for browser usage)\r\n\r\n## Related Packages\r\n\r\n- **[@teliagen/react](../react)** – React hooks integration\r\n- **[@teliagen/vite-plugin](../vite-plugin)** – Vite plugin for code generation\r\n\r\n## Documentation\r\n\r\nFor full documentation, visit [docs.teliagen.org](https://docs.teliagen.org).\r\n\r\n## License\r\n\r\nApache-2.0\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n  <strong>Part of <a href=\"https://github.com/teliagen/teliagen-framework\">Teliagen</a></strong>\r\n</p>\r\n","readmeFilename":"README.md"}