{"_id":"@bytemaster2704/streaming-chat-sdk","_rev":"6-aa06ca5ce496ed2e5477d2b189034f9b","name":"@bytemaster2704/streaming-chat-sdk","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@bytemaster2704/streaming-chat-sdk","version":"1.0.0","keywords":["sdk","chat","streaming"],"author":{"name":"Hanumant Kakde"},"license":"ISC","_id":"@bytemaster2704/streaming-chat-sdk@1.0.0","maintainers":[{"name":"bytemaster2704","email":"hbkakde12@gmail.com"}],"dist":{"shasum":"3a7843a60d138e4b114ef80ee7b84774ad057f60","tarball":"https://registry.npmjs.org/@bytemaster2704/streaming-chat-sdk/-/streaming-chat-sdk-1.0.0.tgz","fileCount":13,"integrity":"sha512-UUP9VhfxfJnaJoxcn7ChmWslsCNV7UX3ao5+4gfu2GF56tlx6KZ2HiGslrRgydxzYYAm1XUu1TwYBza9t0uX/g==","signatures":[{"sig":"MEUCIB7juZzLM6otaPQMxf5QMkEHvD4FlWAgpKIgkhyCiKJIAiEA7iEn2sw3kqkkV2ULRUDkkDH0oeYAxCaKIuVRqlZR0X4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8511},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"2802958dade66b057bf614cf464abdd35ae4ab43","scripts":{"build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"bytemaster2704","email":"hbkakde12@gmail.com"},"_npmVersion":"11.6.0","description":"A simple SDK to interact with a streaming chat API","directories":{},"_nodeVersion":"24.8.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.3","ts-node":"^10.9.2","prettier":"^3.3.2","typescript":"^5.4.5","@types/node":"^20.14.2"},"_npmOperationalInternal":{"tmp":"tmp/streaming-chat-sdk_1.0.0_1758516120941_0.28509542717757896","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bytemaster2704/streaming-chat-sdk","version":"1.0.3","keywords":["sdk","chat","streaming"],"author":{"name":"Hanumant Kakde"},"license":"ISC","_id":"@bytemaster2704/streaming-chat-sdk@1.0.3","maintainers":[{"name":"bytemaster2704","email":"hbkakde12@gmail.com"}],"dist":{"shasum":"4d5f63aad87280ccb4ee9a1ad161fd811b54613f","tarball":"https://registry.npmjs.org/@bytemaster2704/streaming-chat-sdk/-/streaming-chat-sdk-1.0.3.tgz","fileCount":14,"integrity":"sha512-ohmoO00wLkJIuYdd8Iwj5UTyUZhvQsy8yr4ZDZnrQapxo6r2ysYiaYxBWhm0vyU3oq0Zhz5ZrrxTfIpVg3iTsQ==","signatures":[{"sig":"MEUCIBg0L1tRIU8E9bbPFejGvDoSN5XK8bBBpB7H98j6J/khAiEAwD9rG/nYiyywGRRIhD5gEmCcdHT5IPXvzf+6qUqt0/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15293},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"424529f46c6d70c72cf5c21a340170f7b2bea547","scripts":{"build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"bytemaster2704","email":"hbkakde12@gmail.com"},"_npmVersion":"11.6.0","description":"A simple SDK to interact with a streaming chat API","directories":{},"_nodeVersion":"24.8.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.3","ts-node":"^10.9.2","prettier":"^3.3.2","typescript":"^5.4.5","@types/node":"^20.14.2"},"_npmOperationalInternal":{"tmp":"tmp/streaming-chat-sdk_1.0.3_1758518180072_0.3889866397414856","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bytemaster2704/streaming-chat-sdk","version":"1.0.4","keywords":["sdk","chat","streaming"],"author":{"name":"Hanumant Kakde"},"license":"ISC","_id":"@bytemaster2704/streaming-chat-sdk@1.0.4","maintainers":[{"name":"bytemaster2704","email":"hbkakde12@gmail.com"}],"dist":{"shasum":"ad04b50a04c412909884ab3adaab7f590b406005","tarball":"https://registry.npmjs.org/@bytemaster2704/streaming-chat-sdk/-/streaming-chat-sdk-1.0.4.tgz","fileCount":14,"integrity":"sha512-UXX39iZMJ5kF4v5ms8fV3Wcw93Oh334vGc0cZU5hYY8zvWuH1UsDekrTYi3A8mBvB1GTWnwylKqh1RgoQ/APuQ==","signatures":[{"sig":"MEYCIQCQ368WudPatzsBCcdi5652aAHtZLa09bvuykEBwiJEiAIhAO0mDIcdRoe9wDYXej8qg8/Y+SAyHOLXtR2HOF9/ZpAQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14739},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"6b8bbabc883a4a00f6577572f2adf255253e3434","scripts":{"build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"bytemaster2704","email":"hbkakde12@gmail.com"},"_npmVersion":"11.6.0","description":"A simple SDK to interact with a streaming chat API","directories":{},"_nodeVersion":"24.8.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.3","ts-node":"^10.9.2","prettier":"^3.3.2","typescript":"^5.4.5","@types/node":"^20.14.2"},"_npmOperationalInternal":{"tmp":"tmp/streaming-chat-sdk_1.0.4_1758519914514_0.9956021755981748","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bytemaster2704/streaming-chat-sdk","version":"1.0.5","keywords":["sdk","chat","streaming"],"author":{"name":"Hanumant Kakde"},"license":"ISC","_id":"@bytemaster2704/streaming-chat-sdk@1.0.5","maintainers":[{"name":"bytemaster2704","email":"hbkakde12@gmail.com"}],"dist":{"shasum":"4fe1a81f8ce394aec8bfc31908dee25dfc97f5c3","tarball":"https://registry.npmjs.org/@bytemaster2704/streaming-chat-sdk/-/streaming-chat-sdk-1.0.5.tgz","fileCount":14,"integrity":"sha512-9n0uPWwmSyy/HsfQPr8qPDF6q982r/1lQG9Cy11GKy0rpLIkbzWdYPo0Y+7wp8udUu9DKwaPAnGw9XsmdyOILA==","signatures":[{"sig":"MEUCIQCGNjhhNAWPI5MFBrJp2EQ8kGdXxwRsLjdBg2PSI+8fFAIgEHz06oyGclzt9l8Xg07bOqubJwAtwk2Io1EaisI6qjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14739},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"2a4ae526aabef25632b163d93e977f940344aa01","scripts":{"build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"bytemaster2704","email":"hbkakde12@gmail.com"},"_npmVersion":"11.6.0","description":"A simple SDK to interact with a streaming chat API","directories":{},"_nodeVersion":"24.8.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.3","ts-node":"^10.9.2","prettier":"^3.3.2","typescript":"^5.4.5","@types/node":"^20.14.2"},"_npmOperationalInternal":{"tmp":"tmp/streaming-chat-sdk_1.0.5_1758629280982_0.23812048547402154","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@bytemaster2704/streaming-chat-sdk","version":"1.0.6","keywords":["sdk","chat","streaming"],"author":{"name":"Hanumant Kakde"},"license":"ISC","_id":"@bytemaster2704/streaming-chat-sdk@1.0.6","maintainers":[{"name":"bytemaster2704","email":"hbkakde12@gmail.com"}],"dist":{"shasum":"4c44fe83367cdd76c16749dff3e6ff42dab0d85c","tarball":"https://registry.npmjs.org/@bytemaster2704/streaming-chat-sdk/-/streaming-chat-sdk-1.0.6.tgz","fileCount":14,"integrity":"sha512-z5YIMW4NWWHA/K/OR98atUv5mONaoOz5CnRGiyruua/hxlqYWFT9Oy1BULqvHtuM7/4BuKSuPxiZ5MHRevDRjA==","signatures":[{"sig":"MEUCID+S1G7rWda4NFZmGT5FVAOkXl5ajDmXMist48dvgogLAiEAgvOGWd8kpZGoz3/eh3fVVtPf4ArzSPMxVVhwmS/Oayk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16923},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"36f9e13ce17622bb0042cd1e17fccf61fb359d0d","scripts":{"build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"bytemaster2704","email":"hbkakde12@gmail.com"},"_npmVersion":"11.6.0","description":"A simple SDK to interact with a streaming chat API","directories":{},"_nodeVersion":"24.8.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.3","ts-node":"^10.9.2","prettier":"^3.3.2","typescript":"^5.4.5","@types/node":"^20.14.2"},"_npmOperationalInternal":{"tmp":"tmp/streaming-chat-sdk_1.0.6_1758631916501_0.32795903637906076","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@bytemaster2704/streaming-chat-sdk","version":"1.0.7","description":"A simple SDK to interact with a streaming chat API","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"npx tsc","prepublishOnly":"npm run build"},"keywords":["sdk","chat","streaming"],"author":{"name":"Hanumant Kakde"},"license":"ISC","type":"module","dependencies":{},"devDependencies":{"@types/node":"^20.14.2","nodemon":"^3.1.3","prettier":"^3.3.2","ts-node":"^10.9.2","typescript":"^5.4.5"},"_id":"@bytemaster2704/streaming-chat-sdk@1.0.7","gitHead":"86989e3f062c0c11044dd1241de718686ef9d7c3","_nodeVersion":"24.8.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-lpF0ZFYG0Wlo49N/Q78iLnavSc4r1Z7tVcu0vcXsnhPtsnX30TmF4xbkNDvUkmJCGKUm6gKVFDBXEAxSdsRS5A==","shasum":"c85d4f4b00d3bc1a3ab7973f09afaf14f0a4df9f","tarball":"https://registry.npmjs.org/@bytemaster2704/streaming-chat-sdk/-/streaming-chat-sdk-1.0.7.tgz","fileCount":14,"unpackedSize":14526,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICTEpQQPVGczj/dPMJMA4DAEpuH6yKK1lYvjAkmKPjEtAiBq5/JC2j0R667Uys1YGFY/x+lNxlteMh/Q+Eu4y6CJlQ=="}]},"_npmUser":{"name":"bytemaster2704","email":"hbkakde12@gmail.com"},"directories":{},"maintainers":[{"name":"bytemaster2704","email":"hbkakde12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/streaming-chat-sdk_1.0.7_1758947954411_0.7504232780275484"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-22T04:42:00.877Z","modified":"2025-09-27T04:39:14.795Z","1.0.0":"2025-09-22T04:42:01.131Z","1.0.3":"2025-09-22T05:16:20.252Z","1.0.4":"2025-09-22T05:45:14.689Z","1.0.5":"2025-09-23T12:08:01.174Z","1.0.6":"2025-09-23T12:51:56.688Z","1.0.7":"2025-09-27T04:39:14.621Z"},"author":{"name":"Hanumant Kakde"},"license":"ISC","keywords":["sdk","chat","streaming"],"description":"A simple SDK to interact with a streaming chat API","maintainers":[{"name":"bytemaster2704","email":"hbkakde12@gmail.com"}],"readme":"# 📦 Streaming Chat SDK\r\n\r\n[![npm version](https://img.shields.io/npm/v/@bytemaster2704/streaming-chat-sdk)](https://www.npmjs.com/package/@bytemaster2704/streaming-chat-sdk)  \r\nA lightweight, TypeScript-friendly SDK for connecting to **streaming chat APIs** using **Server-Sent Events (SSE)**.  \r\nPerfect for building real-time AI assistants, chatbots, or any application requiring live streamed responses.\r\n\r\n---\r\n\r\n## 🚀 Features\r\n\r\n- ⚡ **Streaming support** via SSE (real-time tokens as they arrive)\r\n- 🛠️ **TypeScript types included** for zero-guesswork development\r\n- 🔌 **Works in browser and Node.js** (with an SSE polyfill in Node)\r\n- 🔍 Easy to configure and extend\r\n\r\n---\r\n\r\n## 📥 Installation\r\n\r\n```bash\r\nnpm install @bytemaster2704/streaming-chat-sdk\r\n```\r\n\r\nIf you’re using Node.js (not the browser), install an SSE polyfill:\r\n\r\n```bash\r\nnpm install eventsource\r\n```\r\n\r\n---\r\n\r\n## 🛠️ Quick Start\r\n\r\n```ts\r\nimport { ChatSDK } from \"@bytemaster2704/streaming-chat-sdk\";\r\n\r\nconst sdk = new ChatSDK({\r\n  baseUrl: \"https://your-chat-api.com\", // defaults to http://localhost:3000\r\n});\r\n\r\nsdk.stream(\"Hello, world!\", {\r\n  onToken: (token) => {\r\n    process.stdout.write(token); // stream tokens in real-time\r\n  },\r\n  onEnd: () => {\r\n    console.log(\"\\n✅ Stream ended by server.\");\r\n  },\r\n  onError: (err) => {\r\n    console.error(\"❌ Error:\", err.message);\r\n  },\r\n});\r\n```\r\n\r\n---\r\n\r\n## 📖 API Reference\r\n\r\n### **Class: `ChatSDK`**\r\n\r\n#### **Constructor**\r\n\r\n```ts\r\nnew ChatSDK(options?: { baseUrl?: string })\r\n```\r\n\r\n- `baseUrl` (string) – The root URL of your chat API.  \r\n  Defaults to `http://localhost:3000`.\r\n\r\n---\r\n\r\n#### **Method: `stream`**\r\n\r\n```ts\r\nsdk.stream(query: string, options: StreamingChatOptions): EventSource\r\n```\r\n\r\nStarts a streaming chat session with the server.\r\n\r\n- **Parameters**\r\n  - `query` _(string)_ – The prompt or question to send.\r\n  - `options` _(StreamingChatOptions)_ – Callbacks for handling stream events.\r\n\r\n- **Returns**\r\n  - `EventSource` – The underlying SSE connection.\r\n\r\n---\r\n\r\n### **Interface: `StreamingChatOptions`**\r\n\r\n```ts\r\ninterface StreamingChatOptions {\r\n  onToken: (token: string) => void; // required\r\n  onEnd?: () => void; // optional\r\n  onError?: (error: Error) => void; // optional\r\n}\r\n```\r\n\r\n- `onToken` – Fired whenever the server streams a new token.\r\n- `onEnd` – Fired when the stream is completed.\r\n- `onError` – Fired if a network or server error occurs.\r\n\r\n---\r\n\r\n## 💡 Common Use Cases\r\n\r\n### ✅ Building an AI Chatbot\r\n\r\nDisplay tokens as they arrive for a natural typing effect.\r\n\r\n### ✅ Real-time Status Updates\r\n\r\nUse the `status` event type to stream progress updates from the server.\r\n\r\n### ✅ Long-running Tasks\r\n\r\nStream results chunk by chunk instead of waiting for the full response.\r\n\r\n---\r\n\r\n## 🐛 Troubleshooting\r\n\r\n### 1. **`EventSource is not defined` (Node.js only)**\r\n\r\nNode.js doesn’t ship with `EventSource`. Install a polyfill:\r\n\r\n```bash\r\nnpm install eventsource\r\n```\r\n\r\nThen, at the top of your app:\r\n\r\n```ts\r\nimport EventSource from \"eventsource\";\r\n(global as any).EventSource = EventSource;\r\n```\r\n\r\n---\r\n\r\n### 2. **`Failed to parse server message`**\r\n\r\nMake sure your server sends **JSON-encoded messages** in this format:\r\n\r\n```json\r\n{ \"type\": \"token\", \"content\": \"Hello\" }\r\n{ \"type\": \"end\" }\r\n{ \"type\": \"error\", \"content\": \"Something went wrong\" }\r\n```\r\n\r\n---\r\n\r\n### 3. **`Stream never ends`**\r\n\r\nYour server must send an `\"end\"` message. Otherwise, the connection stays open indefinitely.\r\n\r\n---\r\n\r\n## 🧪 Development\r\n\r\nClone and build locally:\r\n\r\n```bash\r\ngit clone https://github.com/bytemaster2704/streaming-chat-sdk.git\r\ncd streaming-chat-sdk\r\nnpm install\r\nnpm run build\r\n```\r\n\r\n---\r\n\r\n## 📜 License\r\n\r\n[ISC](./LICENSE) © Hanumant Kakde\r\n","readmeFilename":"README.md"}