{"_id":"@dammers/use-signalr-vue","_rev":"3-cadebd2f5f1e854878ef700449fb1653","name":"@dammers/use-signalr-vue","dist-tags":{"latest":"1.0.0"},"versions":{"0.4.0":{"name":"@dammers/use-signalr-vue","version":"0.4.0","keywords":["signalr","typescript","realtime","websocket","vue","composables"],"author":{"name":"Dammers"},"license":"MIT","_id":"@dammers/use-signalr-vue@0.4.0","maintainers":[{"name":"dammers","email":"dannyheld2001@gmx.de"}],"homepage":"https://github.com/DammersCode/use-signalr/tree/main/packages/vue#readme","bugs":{"url":"https://github.com/DammersCode/use-signalr/issues"},"dist":{"shasum":"5218133fe65fe57503e268806d41df1e2b3ffb72","tarball":"https://registry.npmjs.org/@dammers/use-signalr-vue/-/use-signalr-vue-0.4.0.tgz","fileCount":15,"integrity":"sha512-ncQsW+nFF4TZBaGH3hEdtUNz71Pmst5ICoNllvEcLpfqTI1L1E8sZEuDffzZ+GQ9yjiuRMtBsxmJOLI8M8XQTw==","signatures":[{"sig":"MEQCID/0lrhRdFsaaAgXxTMsVyA0XhZdyVfOCrIww+2qfb1CAiA7w2qR8SE0bz6EwONJh9VHtWmi+EjoV24HTiQ9b2i80Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25445},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d39408e64f45b5190870f5966a13251dc81c4701","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","prebuild":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dammers","email":"dannyheld2001@gmx.de"},"repository":{"url":"git+https://github.com/DammersCode/use-signalr.git","type":"git","directory":"packages/vue"},"_npmVersion":"11.12.1","description":"Fully-typed multi-hub SignalR plugin + composables for Vue.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@dammers/use-signalr-core":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","@vue/test-utils":"^2.4.11","@microsoft/signalr":">=8"},"peerDependencies":{"vue":">=3.3","@microsoft/signalr":">=8"},"_npmOperationalInternal":{"tmp":"tmp/use-signalr-vue_0.4.0_1786515022301_0.376738918054472","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@dammers/use-signalr-vue","version":"0.5.0","keywords":["signalr","typescript","realtime","websocket","vue","composables"],"author":{"name":"Dammers"},"license":"MIT","_id":"@dammers/use-signalr-vue@0.5.0","maintainers":[{"name":"dammers","email":"dannyheld2001@gmx.de"}],"homepage":"https://github.com/DammersCode/use-signalr/tree/main/packages/vue#readme","bugs":{"url":"https://github.com/DammersCode/use-signalr/issues"},"dist":{"shasum":"4366f74f1da616da369eb4ef6e2e6f8ca7336df3","tarball":"https://registry.npmjs.org/@dammers/use-signalr-vue/-/use-signalr-vue-0.5.0.tgz","fileCount":15,"integrity":"sha512-z2E4WbzEnnUk8EyPmNnzbfJXBlPke6n6dwqWpbXWqa5rwWsogdCwY6R5JC6rY6R+Oos4dtfmpv+BNKhUIIUgww==","signatures":[{"sig":"MEYCIQCadam4mvZF/JRy8IuzoEj/KGWxG3/Z2fMhWOzLcVFbUAIhANN5h9EX/guxhTCrVMPlcLiO2IbbXSw1UwX+/3IzRNY8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dammers%2fuse-signalr-vue@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25079},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"57decf63770e4440082ce591f1a56e9fbfa6188c","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","prebuild":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b570d4b-f05f-47c5-bb74-33b3c35ab004"}},"repository":{"url":"git+https://github.com/DammersCode/use-signalr.git","type":"git","directory":"packages/vue"},"_npmVersion":"12.0.2","description":"Fully-typed multi-hub SignalR plugin + composables for Vue.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@dammers/use-signalr-core":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","@vue/test-utils":"^2.4.11","@microsoft/signalr":">=8"},"peerDependencies":{"vue":">=3.3","@microsoft/signalr":">=8"},"_npmOperationalInternal":{"tmp":"tmp/use-signalr-vue_0.5.0_1786515995076_0.5367805039271376","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"_id":"@dammers/use-signalr-vue@1.0.0","bugs":{"url":"https://github.com/DammersCode/use-signalr/issues"},"dist":{"shasum":"56849132e33331bea1d0195d99e2f430f5a5c788","tarball":"https://registry.npmjs.org/@dammers/use-signalr-vue/-/use-signalr-vue-1.0.0.tgz","fileCount":15,"integrity":"sha512-RAJoaquNnRuEoF4SEIL9SR5tTEROH+0NUfxnjXqi2OhkXjjJkQdK7E0IfI2EZTOMP/iFoBls6YDG9M41/FJ+gg==","signatures":[{"sig":"MEUCIFmeKFoA8yUndXbZMSc8fF5z0iGdG1+Cu4bcVQ7vUnUHAiEAl+hchqX4UAuNYGp5JDw7AOmZ8zuTgDj7pFQzesVPjUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF+9UECbik29YcERCrHljWL9rVsLShqOc5xCVfnbElaxAiBEF9GN+bNQ4MYnCrhbEm/vfu98lirxh3ylRcv132d2Mw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dammers%2fuse-signalr-vue@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24363},"main":"./dist/index.js","name":"@dammers/use-signalr-vue","type":"module","types":"./dist/index.d.ts","author":{"name":"Dammers"},"engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"73be70bba6c48beea1174cd9974c7b5737aa7f0c","license":"MIT","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","prebuild":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc --noEmit"},"version":"1.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8b570d4b-f05f-47c5-bb74-33b3c35ab004"}},"homepage":"https://use-signalr.vercel.app/docs/vue","keywords":["signalr","typescript","realtime","websocket","vue","composables"],"repository":{"url":"git+https://github.com/DammersCode/use-signalr.git","type":"git","directory":"packages/vue"},"_npmVersion":"12.2.0","description":"Fully-typed multi-hub SignalR plugin + composables for Vue.","directories":{},"maintainers":[{"name":"dammers","email":"dannyheld2001@gmx.de"}],"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"@dammers/use-signalr-core":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.3.0","@vue/test-utils":"^2.4.11","@microsoft/signalr":"^8.0.0 || ^9.0.0 || ^10.0.0"},"peerDependencies":{"vue":"^3.3.0","@microsoft/signalr":"^8.0.0 || ^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/use-signalr-vue_1.0.0_1790872055198_0.4815780446413378"}}},"time":{"created":"2026-08-12T06:10:22.051Z","modified":"2026-10-01T16:27:35.644Z","0.4.0":"2026-08-12T06:10:22.445Z","0.5.0":"2026-08-12T06:26:35.217Z","1.0.0":"2026-10-01T16:27:35.292Z"},"bugs":{"url":"https://github.com/DammersCode/use-signalr/issues"},"author":{"name":"Dammers"},"license":"MIT","homepage":"https://use-signalr.vercel.app/docs/vue","keywords":["signalr","typescript","realtime","websocket","vue","composables"],"repository":{"url":"git+https://github.com/DammersCode/use-signalr.git","type":"git","directory":"packages/vue"},"description":"Fully-typed multi-hub SignalR plugin + composables for Vue.","maintainers":[{"name":"dammers","email":"dannyheld2001@gmx.de"}],"readme":"# @dammers/use-signalr-vue\n\nPlugin and composables for typed [SignalR](https://learn.microsoft.com/aspnet/core/signalr) in Vue. Part of [use-signalr](https://use-signalr.vercel.app).\n\n[![npm](https://img.shields.io/npm/v/@dammers/use-signalr-vue.svg)](https://www.npmjs.com/package/@dammers/use-signalr-vue)\n[![license](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/DammersCode/use-signalr/blob/main/LICENSE)\n\n## Install\n\n```bash\nnpm install @dammers/use-signalr-vue @microsoft/signalr\n```\n\nIt needs Vue ^3.3, `@microsoft/signalr` ^8 || ^9 || ^10, and Node 20.19 or later.\n\n## Example\n\nThis file declares a hub, connects it, and reads a typed method result:\n\n<!-- hero:vue:start -->\n```ts\nimport { createApp, ref } from \"vue\";\nimport { createSignalRClient, method } from \"@dammers/use-signalr-vue\";\nimport App from \"./App.vue\";\n\nexport const signalR = createSignalRClient({\n  hubs: {\n    \"/hubs/rooms\": {\n      methods: { GetHistory: method<[roomId: string], { text: string }[]>() },\n    },\n  },\n});\n\ncreateApp(App)\n  .use(signalR, { baseUrl: \"https://api.example.com\", accessTokenFactory: () => \"token\" })\n  .mount(\"#app\");\n\n// Call this composable in a component's setup().\nexport function useHistoryCount(roomId: string) {\n  const getHistory = signalR.useSignalRInvoke(\"/hubs/rooms\", \"GetHistory\");\n  const count = ref(0);\n  const load = () => getHistory(roomId).then((m) => (count.value = m.length)).catch(console.error);\n  return { count, load };\n}\n```\n<!-- hero:vue:end -->\n\n## Documentation\n\n- [Quick start](https://use-signalr.vercel.app/docs/vue/quick-start)\n- [Provider setup](https://use-signalr.vercel.app/docs/vue/concepts/provider)\n- [Events](https://use-signalr.vercel.app/docs/vue/concepts/events) and [calls](https://use-signalr.vercel.app/docs/vue/concepts/calls)\n- [Connection status](https://use-signalr.vercel.app/docs/vue/concepts/connection-status) and [recovery](https://use-signalr.vercel.app/docs/vue/concepts/recovery)\n- [API reference](https://use-signalr.vercel.app/docs/vue/reference/api)\n- [Troubleshooting](https://use-signalr.vercel.app/docs/vue/reference/troubleshooting)\n\n## License\n\n[MIT](https://github.com/DammersCode/use-signalr/blob/main/LICENSE) © [DammersCode](https://github.com/DammersCode)\n","readmeFilename":"README.md"}