{"_id":"@astralibx/telegram-inbox","_rev":"3-add186f7ef02df9cf5168b727fe2d4e7","name":"@astralibx/telegram-inbox","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.1":{"name":"@astralibx/telegram-inbox","version":"0.1.1","keywords":["telegram","inbox","messages","conversations","history-sync","media","real-time"],"license":"MIT","_id":"@astralibx/telegram-inbox@0.1.1","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"3a8329a98939568600eab17de2482fb39d766ee3","tarball":"https://registry.npmjs.org/@astralibx/telegram-inbox/-/telegram-inbox-0.1.1.tgz","fileCount":94,"integrity":"sha512-YRJ+2O4lwOmLDtN2zqkUj0p8VCImterkUcSzb3dt1qL/APfuJl643U398Hztgk3nGyTC01iOU+11sNF/qV+amA==","signatures":[{"sig":"MEUCIQCHd0LPPC8enpoT4FQguUYn/njgXP7HL1ypOZuHaJRNoAIgRaZbI2zIRU/BvceYN5YaDiuk8vnP42YmdroUfMMU9Pg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147553},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"df956e4b9f30b71fc0ee0eba6b811eee2092bf52","scripts":{"lint":"eslint src/","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/telegram/inbox"},"_npmVersion":"10.9.4","description":"Real-time Telegram message listener, conversations, history sync, media processing, and session tracking","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","express":"^5.0.0","mongoose":"^8.12.1","telegram":"^2.26.22","typescript":"^5.8.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","mongodb-memory-server":"^10.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0","telegram":"^2.20.0","@astralibx/telegram-account-manager":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/telegram-inbox_0.1.1_1773730924812_0.981215508355461","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@astralibx/telegram-inbox","version":"0.1.2","keywords":["telegram","inbox","messages","conversations","history-sync","media","real-time"],"license":"MIT","_id":"@astralibx/telegram-inbox@0.1.2","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"6b9727711352cc0fc37554a7bb719444177142e3","tarball":"https://registry.npmjs.org/@astralibx/telegram-inbox/-/telegram-inbox-0.1.2.tgz","fileCount":94,"integrity":"sha512-m8btcyQPxTbs5XVIwlfyKjrBmVWC+wkzH4m49O5XxL+LE1lKez/AN3zsBqmcR5huWGZ8g2vCNIa+RrpzULXLpQ==","signatures":[{"sig":"MEUCIDhsTxYOBl4SIwFyQMruIdBQ4Yn4hv12cHaY5vhOjGAEAiEAvFrFV+3fDBsclQgA85oYpmpYBNsHfS5bKEnjoNs8g0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147553},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fd42f0db8c9fd08982aee61f94304819cd425d54","scripts":{"lint":"eslint src/","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/telegram/inbox"},"_npmVersion":"10.9.4","description":"Real-time Telegram message listener, conversations, history sync, media processing, and session tracking","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","express":"^5.0.0","mongoose":"^8.12.1","telegram":"^2.26.22","typescript":"^5.8.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","mongodb-memory-server":"^10.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0","telegram":"^2.20.0","@astralibx/telegram-account-manager":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/telegram-inbox_0.1.2_1773733708312_0.8455000974093136","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@astralibx/telegram-inbox","version":"1.0.0","description":"Real-time Telegram message listener, conversations, history sync, media processing, and session tracking","repository":{"type":"git","url":"git+https://github.com/Hariprakash1997/astralib.git","directory":"packages/telegram/inbox"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint src/","clean":"rm -rf dist"},"keywords":["telegram","inbox","messages","conversations","history-sync","media","real-time"],"license":"MIT","dependencies":{"@astralibx/core":"*","zod":"^3.23.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0","telegram":"^2.20.0","@astralibx/telegram-account-manager":"^0.2.0"},"devDependencies":{"@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","express":"^5.0.0","mongodb-memory-server":"^10.0.0","mongoose":"^8.12.1","telegram":"^2.26.22","typescript":"^5.8.2","vitest":"^3.0.0"},"_id":"@astralibx/telegram-inbox@1.0.0","gitHead":"b96fb6e63feccf19591d627ddda0c3d04f165ad2","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"homepage":"https://github.com/Hariprakash1997/astralib#readme","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-PCbmXpdVdCK7CF+AGYG65Ht4EpwTceBER2T5OPgXPcrGP4iRS7WoJOwy4LBSHQSUFpYsZLH+SC1HQbrK4AV7Zg==","shasum":"f88a7b753a5f84d08fa6521517fbac6db48dd5f3","tarball":"https://registry.npmjs.org/@astralibx/telegram-inbox/-/telegram-inbox-1.0.0.tgz","fileCount":98,"unpackedSize":182642,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC7QOdsZmEoBLeDE82HGQOYr7kIorRRaRGaMENLiXPMSAIhAMbD7dTTK0DduHar4e8fGmAvc04Vbk0S4DQlx2Qz6/kn"}]},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"directories":{},"maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/telegram-inbox_1.0.0_1773814061860_0.2187116817811432"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T07:02:04.753Z","modified":"2026-03-18T06:07:42.137Z","0.1.1":"2026-03-17T07:02:04.953Z","0.1.2":"2026-03-17T07:48:28.456Z","1.0.0":"2026-03-18T06:07:41.997Z"},"bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"license":"MIT","homepage":"https://github.com/Hariprakash1997/astralib#readme","keywords":["telegram","inbox","messages","conversations","history-sync","media","real-time"],"repository":{"type":"git","url":"git+https://github.com/Hariprakash1997/astralib.git","directory":"packages/telegram/inbox"},"description":"Real-time Telegram message listener, conversations, history sync, media processing, and session tracking","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"readme":"# @astralibx/telegram-inbox\n\nReal-time Telegram inbox infrastructure for Node.js. Listens for incoming messages via GramJS, stores conversations and message history in MongoDB, supports media downloads with pluggable upload adapters, session tracking, history sync, and typing indicators. Builds on top of `@astralibx/telegram-account-manager` and mounts as a single Express router.\n\n> **Getting started?** See the [Quick Start Tutorial](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/docs/quick-start-tutorial.md) for a step-by-step walkthrough, [Integration Guide](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/docs/integration-guide.md) for multi-package setup, or the [Glossary](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/docs/glossary.md) for ID terminology.\n\n## Install\n\n```bash\nnpm install @astralibx/telegram-inbox\n```\n\n### Peer Dependencies\n\n| Package | Required |\n|---------|----------|\n| `express` | Yes |\n| `mongoose` | Yes |\n| `telegram` | Yes (GramJS) |\n| `@astralibx/telegram-account-manager` | Yes |\n\n```bash\nnpm install express mongoose telegram @astralibx/telegram-account-manager\n```\n\n## Quick Start\n\n```ts\nimport express from 'express';\nimport mongoose from 'mongoose';\nimport { createTelegramAccountManager } from '@astralibx/telegram-account-manager';\nimport { createTelegramInbox } from '@astralibx/telegram-inbox';\n\nconst app = express();\napp.use(express.json());\n\nconst db = await mongoose.createConnection('mongodb://localhost:27017/myapp');\n\nconst tam = createTelegramAccountManager({\n  db: { connection: db },\n  credentials: { apiId: 12345678, apiHash: 'your-api-hash' },\n});\n\nconst inbox = createTelegramInbox({\n  accountManager: tam,\n  db: { connection: db },\n  media: {\n    uploadAdapter: async (buffer, filename, mimeType) => {\n      // Library downloads media from Telegram, you store it\n      const url = await myStorage.upload(buffer, filename, mimeType);\n      return { url, mimeType, fileSize: buffer.length };\n    },\n    maxFileSizeMb: 50,\n  },\n  hooks: {\n    onNewMessage: (msg) => console.log('New message:', msg.content),\n  },\n});\n\n// Mount routes (protect with your own auth middleware)\napp.use('/api/telegram/accounts', tam.routes);\napp.use('/api/telegram/inbox', inbox.routes);\n\n// Listen for real-time events\ninbox.events.on('inbox:new_message', (msg) => {\n  // Push to WebSocket, SSE, etc.\n});\n\n// Graceful shutdown\nprocess.on('SIGTERM', async () => {\n  await inbox.destroy();\n  await tam.destroy();\n});\n\napp.listen(3000);\n```\n\n## Features\n\n- **Real-time message listening** -- Auto-attaches to all connected TDLib clients and captures inbound/outbound messages. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/configuration.md)\n- **Conversation aggregation** -- Groups messages by conversation with last message, unread counts, and pagination. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md#conversation-routes)\n- **History sync** -- Pull historical messages from Telegram for any chat on demand. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md#sync-history)\n- **Media processing** -- Downloads media from Telegram, delegates storage to your `uploadAdapter` callback. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/configuration.md#media)\n- **Session tracking** -- Track account-to-contact conversation sessions with pause/resume/close lifecycle. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md#session-routes)\n- **Event gateway** -- EventEmitter-based gateway for `new_message`, `typing`, and `message_read` events. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/types.md#exported-service-classes)\n- **Typing indicators** -- Broadcast typing status to Telegram chats. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/configuration.md#optionstypingtimeoutms)\n- **accountId filtering** -- Filter conversations, messages, and unread counts by account. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md#list-conversations)\n- **Dialog sync** -- Load and sync Telegram dialogs into the database for connected accounts. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md#sync-dialogs-to-db)\n- **Search** -- Full-text search across messages with pagination and account filtering. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md#search-messages)\n- **Express routes out of the box** -- 14 REST endpoints for conversations and sessions. [Details](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md)\n\n## Architecture\n\nThe library exposes a single Express router from a factory call:\n\n| Router | Purpose | Access |\n|--------|---------|--------|\n| `inbox.routes` | Inbox API -- conversations, messages, sessions | Protected (add your auth middleware) |\n\nAll services are also available programmatically via the returned `inbox` object.\n\n## Getting Started Guide\n\n1. [Configuration](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/configuration.md) -- Set up accountManager, database, media adapter, options, and hooks\n2. [API Routes](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/api-routes.md) -- 14 REST endpoints for conversations and sessions\n3. [Types](https://github.com/Hariprakash1997/astralib/blob/main/packages/telegram/inbox/docs/types.md) -- All importable types, constants, errors, and service classes\n\n> **Important:** This package requires a configured `@astralibx/telegram-account-manager` instance. Set up the account manager first, then pass it into the inbox factory.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}