{"_id":"@banana-universe/plugin-websocket","_rev":"2-2a7a6be1ed0abf2af970c4e833cbb116","name":"@banana-universe/plugin-websocket","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@banana-universe/plugin-websocket","version":"0.1.0","author":{"name":"Surya Prakash Manne"},"license":"MIT","_id":"@banana-universe/plugin-websocket@0.1.0","maintainers":[{"name":"sprakas","email":"suryaprakash.manne1@gmail.com"}],"homepage":"https://github.com/surya-manne/banana-universe#readme","bugs":{"url":"https://github.com/surya-manne/banana-universe/issues"},"dist":{"shasum":"1cc52ba3c12b41b74b3d5bbbc477417426e362fd","tarball":"https://registry.npmjs.org/@banana-universe/plugin-websocket/-/plugin-websocket-0.1.0.tgz","fileCount":16,"integrity":"sha512-CEqR5MZAHQR0TIij/BWU43i85lZleNerSW9DvQzvXIK2OqaElMW70ibmG7ikgq0BUQLxDo2gM/rWQrqmuBrjNQ==","signatures":[{"sig":"MEUCIQC1G4PwO09fIjNfKl1RYjyhMEOt2JIxIawqys49B3U2BwIgH9akXHOv3XQ1jM3k+zADK9S/Ss34ANJfaenbDWTPxPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14733},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"48e7f9557b6be3c8be7a0cab2b5953a731e3bed4","_npmUser":{"name":"sprakas","email":"suryaprakash.manne1@gmail.com"},"repository":{"url":"git+https://github.com/surya-manne/banana-universe.git","type":"git"},"_npmVersion":"11.6.2","description":"WebSocket plugin for BananaJS — @WsController, @OnConnect, @OnMessage decorators backed by the ws library.","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.1","zod":"^3.24.0","express":"^4.21.2","tsyringe":"^4.8.0","@types/ws":"^8.5.14","reflect-metadata":"^0.2.2","@banana-universe/bananajs":"*"},"peerDependencies":{"ws":">=8.0.0","zod":"^3.24.0","@banana-universe/bananajs":">=0.6.0"},"peerDependenciesMeta":{"ws":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plugin-websocket_0.1.0_1776801236622_0.06327413356499223","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@banana-universe/plugin-websocket","version":"0.1.1","description":"WebSocket plugin for BananaJS — @WsController, @OnConnect, @OnMessage decorators backed by the ws library.","author":{"name":"Surya Prakash Manne"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/surya-manne/banana-universe.git"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"development":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"peerDependencies":{"@banana-universe/bananajs":">=0.6.0","ws":">=8.0.0","zod":"^3.24.0"},"peerDependenciesMeta":{"ws":{"optional":true}},"devDependencies":{"@banana-universe/bananajs":"0.6.1","@types/ws":"^8.5.14","express":"^4.21.2","reflect-metadata":"^0.2.2","tsyringe":"^4.8.0","ws":"^8.18.1","zod":"^3.24.0"},"publishConfig":{"access":"public"},"homepage":"https://surya-manne.github.io/banana-universe/","gitHead":"4d8b7890043fef8e65e43486b7c3611e6e8085cf","_id":"@banana-universe/plugin-websocket@0.1.1","bugs":{"url":"https://github.com/surya-manne/banana-universe/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-DtTtAkqN5uazfJMjRyVjxplf9WAV0GzmuAHT/Akw8yafPmBkEErPvR6QjGxiZxtfPqYBn0gLfJlGUYnW2J+pCA==","shasum":"5bbd92a646c8f390322b3f1faed8e8c66c618035","tarball":"https://registry.npmjs.org/@banana-universe/plugin-websocket/-/plugin-websocket-0.1.1.tgz","fileCount":17,"unpackedSize":15964,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDUmV1HAXm7KYYcwaYZbQT2+Q7E8Y/HHFHJqJFsU+IakwIgUZVGvLzRdXYQKJvBR8DchvWdmyHykjeRpTuNu09/HLc="}]},"_npmUser":{"name":"sprakas","email":"suryaprakash.manne1@gmail.com"},"directories":{},"maintainers":[{"name":"sprakas","email":"suryaprakash.manne1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-websocket_0.1.1_1776804224106_0.9328104385192704"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-21T19:53:56.538Z","modified":"2026-04-21T20:43:44.377Z","0.1.0":"2026-04-21T19:53:56.751Z","0.1.1":"2026-04-21T20:43:44.244Z"},"bugs":{"url":"https://github.com/surya-manne/banana-universe/issues"},"author":{"name":"Surya Prakash Manne"},"license":"MIT","homepage":"https://surya-manne.github.io/banana-universe/","repository":{"type":"git","url":"git+https://github.com/surya-manne/banana-universe.git"},"description":"WebSocket plugin for BananaJS — @WsController, @OnConnect, @OnMessage decorators backed by the ws library.","maintainers":[{"name":"sprakas","email":"suryaprakash.manne1@gmail.com"}],"readme":"# @banana-universe/plugin-websocket\n\nWebSocket plugin for BananaJS using ws with decorator-based handlers.\n\n## Homepage\n\nhttps://surya-manne.github.io/banana-universe/\n\n## Installation\n\n```bash\nnpm install @banana-universe/plugin-websocket ws zod\n```\n\n## Core API Surface\n\n- `new WebSocketPlugin({ path?, controllers })`\n- `WsController`, `OnConnect`, `OnDisconnect`, `OnMessage`, `WsBody`\n\n## Minimal Working Setup\n\n```ts\nimport { z } from 'zod';\nimport { BananaApp } from '@banana-universe/bananajs';\nimport { WebSocketPlugin, WsController, OnMessage, WsBody } from '@banana-universe/plugin-websocket';\n\n@WsController('/chat')\nclass ChatController {\n  @OnMessage('message')\n  onMessage(@WsBody(z.object({ text: z.string().min(1) })) payload: { text: string }) {\n    return { ok: true, echo: payload.text };\n  }\n}\n\nconst wsPlugin = new WebSocketPlugin({ path: '/ws', controllers: [ChatController] });\nconst app = await BananaApp.create({ controllers: [], plugins: [wsPlugin] });\nconst server = app.getInstance().listen(3000);\nwsPlugin.attachToServer(server);\n```\n\n## Documentation\n\n- Project docs: https://surya-manne.github.io/banana-universe/\n\n## License\n\nMIT\n","readmeFilename":"README.md"}