{"_id":"@alphinex/chat","_rev":"6-40e4733dd8c25383f1647b6984a11ff4","name":"@alphinex/chat","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.1":{"name":"@alphinex/chat","version":"1.0.1","license":"UNLICENSED","_id":"@alphinex/chat@1.0.1","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"acb8851cc11cbb5de63ea93af27a13bb1d2b8576","tarball":"https://registry.npmjs.org/@alphinex/chat/-/chat-1.0.1.tgz","fileCount":5,"integrity":"sha512-xjZ5/8GXIjbW/Fn6HakF1Di/FwMRdAEd3a9cBx6Ymm6IfStATCakLFTjU4z/OAxvhBdMbSCNlWztG9jdy/an/w==","signatures":[{"sig":"MEUCIGt/Kug2HFHTW6PonJzvCzw7+LNUV//X8lkzfkpiixKSAiEAyWUYoQRB7kjIgsTLPW6xq+e35gDb0LP9KxStRS1N/a0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Chat shell UI (message list, composer, presence) against a pluggable ChatTransport — the real-time transport itself is deferred, see ADR-0015. See documentation/PRODUCT-RESEARCH-MASTER-PLAN.md §10.1 (Sprint 25).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.3.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","axe-core":"^4.10.2","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat_1.0.1_1786200446576_0.07194706170490961","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alphinex/chat","version":"1.0.2","license":"UNLICENSED","_id":"@alphinex/chat@1.0.2","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"12a2ebddfb4299f984f42b66db7c7e5b03b45aff","tarball":"https://registry.npmjs.org/@alphinex/chat/-/chat-1.0.2.tgz","fileCount":5,"integrity":"sha512-dNJdDxBph12xD3AV3QAJOeWkH9MPAz6eYt56+019HpWX5E0VHXn7OuCzekKjae7x2DF3W06qcaPwm3UosGlbFA==","signatures":[{"sig":"MEQCIFvim3AT03MPTyNxSeT//dfR8keRqsPgNChV/7BSJnkdAiAaU9qJC+gLyseGlIcKAybNEOKqogRNVib+fISZjwusFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Chat shell UI (message list, composer, presence) against a pluggable ChatTransport — the real-time transport itself is deferred, see ADR-0015. See documentation/PRODUCT-RESEARCH-MASTER-PLAN.md §10.1 (Sprint 25).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.4.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","axe-core":"^4.10.2","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat_1.0.2_1786218403812_0.8786228411291106","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alphinex/chat","version":"1.0.3","license":"UNLICENSED","_id":"@alphinex/chat@1.0.3","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"9e6a81e9eecc7c8aa3b1c4ac76722cc8899b9cc5","tarball":"https://registry.npmjs.org/@alphinex/chat/-/chat-1.0.3.tgz","fileCount":5,"integrity":"sha512-TflL+j3B9nxmZTHdL+tOjRCPzsvM0GhyZjNbEi6zRkiIXLKknN/sDVuXkTJelaT3SdSqPnYqF360VeE1OqMNrQ==","signatures":[{"sig":"MEQCIA9MRZtuc2QhPCKbSTbEP1uZSY1QsGbX+OFQGl8K8VdPAiBu0Gw0UYwHBw6Nq/Dc7/h/ZPI3i91Byd9B3h5IhseO4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Chat shell UI (message list, composer, presence) against a pluggable ChatTransport — the real-time transport itself is deferred, see ADR-0015. See documentation/PRODUCT-RESEARCH-MASTER-PLAN.md §10.1 (Sprint 25).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.5.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","axe-core":"^4.10.2","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat_1.0.3_1786273315195_0.15626727441047517","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alphinex/chat","version":"1.0.4","license":"UNLICENSED","_id":"@alphinex/chat@1.0.4","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"597258aa4ba7d73995cb756b466056fa63b881ac","tarball":"https://registry.npmjs.org/@alphinex/chat/-/chat-1.0.4.tgz","fileCount":5,"integrity":"sha512-l20+AMVy6L+U18nIP0W5sqa/Mfuj6vQe2uGe+uYl9eTK3qeu72yE+zrRzvlP3/bFHfmUb/fLvQGKrtWSzoSMGQ==","signatures":[{"sig":"MEQCIGdSPobjzkv3I9lpeFVqPim5y785bxt8jIIiRZbzHjF0AiAdwKNFUMLa5q/ZW1LPhaRX+GR4h0jhCO02c1YiYRZ+YQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Chat shell UI (message list, composer, presence) against a pluggable ChatTransport — the real-time transport itself is deferred, see ADR-0015. See documentation/PRODUCT-RESEARCH-MASTER-PLAN.md §10.1 (Sprint 25).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.5.1","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.1.0","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","axe-core":"^4.10.2","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat_1.0.4_1786298608018_0.7200673134054174","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@alphinex/chat","version":"1.0.5","license":"UNLICENSED","_id":"@alphinex/chat@1.0.5","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"e2eefd32d7acf8d6e49596bffa2bdc840c5a4966","tarball":"https://registry.npmjs.org/@alphinex/chat/-/chat-1.0.5.tgz","fileCount":5,"integrity":"sha512-1CsBeoePJZ3Kg+rJsHz3uk3XggZCgE1oXDbz73GYDTMPgzN+EXodySegSA4yjloqT2ijxEUhW+ahdXcKr7KkmQ==","signatures":[{"sig":"MEQCIBBsxC/h5tIrNQVHMdEyIWkebDHO3W1Wxvu/aEOeIa/uAiAWNWHH+9GWhDkUy9OVLHIVUZzISZ3tsvGsBX7YOAS07w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Chat shell UI (message list, composer, presence) against a pluggable ChatTransport — the real-time transport itself is deferred, see ADR-0015. See documentation/PRODUCT-RESEARCH-MASTER-PLAN.md §10.1 (Sprint 25).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.6.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.2","@alphinex/icons":"1.2.0","@alphinex/theme":"1.1.0","@alphinex/utils":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","axe-core":"^4.10.2","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat_1.0.5_1786525482507_0.4640141011441248","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@alphinex/chat","version":"1.0.6","private":false,"description":"Chat shell UI (message list, composer, presence) against a pluggable ChatTransport — the real-time transport itself is deferred, see ADR-0015. See documentation/PRODUCT-RESEARCH-MASTER-PLAN.md §10.1 (Sprint 25).","license":"UNLICENSED","type":"module","sideEffects":false,"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"dependencies":{"@alphinex/core":"1.0.0","@alphinex/theme":"1.1.0","@alphinex/icons":"1.2.0","@alphinex/utils":"1.1.0","@alphinex/hooks":"1.0.2","@alphinex/ui":"2.7.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"devDependencies":{"typescript":"^5.7.2","vite":"^6.0.5","vitest":"^2.1.8","react":"^19.0.0","react-dom":"^19.0.0","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.5.2","@vitejs/plugin-react":"^4.3.4","axe-core":"^4.10.2","jsdom":"^25.0.1","eslint":"^9.17.0","@alphinex/build-config":"0.0.0","@alphinex/eslint-config":"0.0.0","@alphinex/typescript-config":"0.0.0"},"scripts":{"build":"vite build","dev":"vite build --watch","lint":"eslint .","typecheck":"tsc --noEmit","test":"vitest run","clean":"rimraf dist .turbo"},"_nodeVersion":"22.14.0","_id":"@alphinex/chat@1.0.6","dist":{"integrity":"sha512-c6v5UhJtVFc6QHZTA9ddyuTanyzY9SpvPJeRkOLzvoXWNoP3LpwssGEQnD/qkWKPUZkV9nz7ioZC+5SJ/caLzg==","shasum":"b6001d51a26b6435f52714517a5a55ac1220f147","tarball":"https://registry.npmjs.org/@alphinex/chat/-/chat-1.0.6.tgz","fileCount":5,"unpackedSize":30000,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICjdk+LiZrzqn3OtWM2ceb2b/I5LZcP9qUf5uwOLsYBRAiBBy0YQFsmn3LKEmr1oUAvrXBf+soNBWn0A9LqeSLDOnA=="}]},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"directories":{},"maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chat_1.0.6_1786546530648_0.2954368106170737"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T14:47:26.471Z","modified":"2026-08-12T14:55:30.985Z","1.0.1":"2026-08-08T14:47:26.735Z","1.0.2":"2026-08-08T19:46:43.931Z","1.0.3":"2026-08-09T11:01:55.381Z","1.0.4":"2026-08-09T18:03:28.176Z","1.0.5":"2026-08-12T09:04:42.656Z","1.0.6":"2026-08-12T14:55:30.815Z"},"license":"UNLICENSED","description":"Chat shell UI (message list, composer, presence) against a pluggable ChatTransport — the real-time transport itself is deferred, see ADR-0015. See documentation/PRODUCT-RESEARCH-MASTER-PLAN.md §10.1 (Sprint 25).","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"readme":"# @alphinex/chat\n\nChat shell UI (message list, composer, presence list) against a pluggable `ChatTransport`. The\nreal-time transport itself (Reverb, plain WebSocket, ...) is deliberately not decided by this\npackage — see [ADR-0015](../../documentation/adr/0015-chat-shell-transport-deferred.md).\n\n## Usage\n\n```tsx\nimport { ChatShell, MockChatTransport } from \"@alphinex/chat\";\nimport { useMemo } from \"react\";\n\nfunction SupportChat() {\n  const transport = useMemo(() => new MockChatTransport({ id: \"me\", name: \"Ada Lovelace\" }), []);\n  return <ChatShell transport={transport} currentUserId=\"me\" />;\n}\n```\n\n`useChatShell` is the headless layer underneath, if you want a custom chat UI.\n\n## Bringing your own transport\n\nImplement `ChatTransport` (`connect`/`disconnect`/`sendMessage`/`onMessage`/`onPresenceChange`)\nagainst whatever real-time backend your app uses — a Laravel Reverb WebSocket connection, a\ngeneric WebSocket, Server-Sent Events, or polling. `ChatShell`/`useChatShell` don't know or care\nwhich one is behind the interface.\n\n## Known limitations (Sprint 25 scope — see ADR-0015)\n\n- No message persistence, pagination, or history loading — `useChatShell` only holds messages\n  received since it connected.\n- No typing indicators, read receipts, or file attachments.\n- `MockChatTransport` is in-memory only; it does not simulate network latency or failure modes.\n","readmeFilename":""}