{"_id":"@dhrubojyotiboro/gosocket-client","name":"@dhrubojyotiboro/gosocket-client","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@dhrubojyotiboro/gosocket-client","version":"0.1.0","type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts","typecheck":"tsc -p tsconfig.json --noEmit","test":"npm run build && node --test test/**/*.test.mjs","prepublishOnly":"npm run typecheck && npm test"},"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2"},"_id":"@dhrubojyotiboro/gosocket-client@0.1.0","gitHead":"03c54b6c74dcda216790950904dc65e6925ea290","description":"TypeScript websocket client for the Go `gosocket` server.","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-nQoNFeRmIs5Zv7c/ObOvrV/e/VX3tEITWEK7WITRZIqrtmRZN9vOC99tCT1uTi0DPy8oTmngQXCZC35hmd0lgg==","shasum":"2e05253defaf92504c19a0bb1e7f5e0a10fd4415","tarball":"https://registry.npmjs.org/@dhrubojyotiboro/gosocket-client/-/gosocket-client-0.1.0.tgz","fileCount":6,"unpackedSize":47355,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDx0b3XCmAw0JY7AruejPrIAYD21mit5jbADOv36inJgIgD8moDvTAdgSD9A2OfcKEmANpHP5voKogqXSYDrRqfDQ="}]},"_npmUser":{"name":"dhrubojyotiboro","email":"hootowldhrubo@gmail.com"},"directories":{},"maintainers":[{"name":"dhrubojyotiboro","email":"hootowldhrubo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gosocket-client_0.1.0_1772398662310_0.07044633918833432"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-01T20:57:42.195Z","0.1.0":"2026-03-01T20:57:42.452Z","modified":"2026-03-01T20:57:42.911Z"},"maintainers":[{"name":"dhrubojyotiboro","email":"hootowldhrubo@gmail.com"}],"description":"TypeScript websocket client for the Go `gosocket` server.","readme":"# @gosocket/client\n\nTypeScript websocket client for the Go `gosocket` server.\n\n## Goals\n\n- deterministic connection state (`idle`, `connecting`, `open`, `closing`, `closed`, `disposed`)\n- bounded queue when disconnected (optional)\n- subscribe/unsubscribe acknowledgements with timeout handling\n- exponential reconnect with jitter\n- no silent handler crashes (listener errors are trapped)\n\n## Usage\n\n```ts\nimport { SocketClient } from \"@gosocket/client\";\n\nconst client = new SocketClient({ url: \"ws://localhost:8080/ws\" });\n\nclient.on(\"message\", (msg) => {\n  console.log(msg);\n});\n\nawait client.connect();\nawait client.subscribe(\"news\");\nawait client.publish(\"news\", \"headline\", { title: \"hello\" });\nawait client.publish(\"news\", \"headline\", \"plain text body\", { payloadType: \"text\" });\nawait client.publish(\"news\", \"blob\", new Uint8Array([1, 2, 3, 4]), { payloadType: \"binary\" });\n```\n\n## Events\n\n- `state`\n- `open`\n- `close`\n- `error`\n- `message`\n- `reconnectAttempt`\n- `droppedMessage`\n","readmeFilename":"README.md","_rev":"1-2f982d01f6c4831f303ed6bceab753b2"}