{"_id":"@emdzej/bimmerz-rpc-can","_rev":"2-c191137e014e49405b48826965d91c71","name":"@emdzej/bimmerz-rpc-can","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@emdzej/bimmerz-rpc-can","version":"0.1.0","_id":"@emdzej/bimmerz-rpc-can@0.1.0","maintainers":[{"name":"emdzej","email":"michal@jaskolski.pro"}],"homepage":"https://github.com/emdzej/bimmerz#readme","bugs":{"url":"https://github.com/emdzej/bimmerz/issues"},"dist":{"shasum":"277d94769d4ba4066c5dcae71c01968a59bb15a0","tarball":"https://registry.npmjs.org/@emdzej/bimmerz-rpc-can/-/bimmerz-rpc-can-0.1.0.tgz","fileCount":15,"integrity":"sha512-Ob1Ux8a36+SPmt5zhdYQK85i18EfgLjN+znjb3aIKIq4r/djEQCe2RIcL45yIsSRa09B634OTauxkGMut+Tz0Q==","signatures":[{"sig":"MEUCIQDwyGglEm1LY/BrMSnfdlKltb/n2fByh7g45p9EUPCf2gIgM40ItROp8X07L4TiqEjT2oYPZfXh9+zktLGW5rMQpiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19594},"main":"dist/index.js","type":"module","_from":"file:emdzej-bimmerz-rpc-can-0.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint .","build":"tsc","clean":"rm -rf dist .turbo *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"emdzej","email":"michal@jaskolski.pro"},"_resolved":"/private/var/folders/7h/x_w_580x4s9dq3sq11tpvzkwy3nbj8/T/c2fcaa0e4d3b1936b1e3591587209dfc/emdzej-bimmerz-rpc-can-0.1.0.tgz","_integrity":"sha512-Ob1Ux8a36+SPmt5zhdYQK85i18EfgLjN+znjb3aIKIq4r/djEQCe2RIcL45yIsSRa09B634OTauxkGMut+Tz0Q==","repository":{"url":"git+https://github.com/emdzej/bimmerz.git","type":"git","directory":"packages/rpc-can"},"_npmVersion":"11.16.0","description":"Typed client for the bimmerz-box dongle's /rpc/can/<n> endpoint. Classical CAN frames, no FD. Built on @emdzej/bimmerz-rpc-core.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@emdzej/bimmerz-rpc-core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.13.1"},"_npmOperationalInternal":{"tmp":"tmp/bimmerz-rpc-can_0.1.0_1781257942235_0.39290624181158873","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@emdzej/bimmerz-rpc-can@0.3.0","bugs":{"url":"https://github.com/emdzej/bimmerz-core/issues"},"dist":{"shasum":"367b5502483c45929c1256dff194e7888170d984","tarball":"https://registry.npmjs.org/@emdzej/bimmerz-rpc-can/-/bimmerz-rpc-can-0.3.0.tgz","fileCount":15,"integrity":"sha512-z1WXAR/SStAi07qKUXvLbh9hHI3C/n8nhidlwm0tenCBrapPlpiczj/GjI6jDCmVgrAuAPYQKe8xOj3zOSHZ/g==","signatures":[{"sig":"MEYCIQDpX36Ljy5dpYlNfnP8e9D6l+mX2l8or06ldb+nQQ8uIwIhAMKpIXxSzZmHpGPbnpaPcuH/XTUx4z82V5vMB3aJRCvj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCrpTrEB2CMhGGlJTSZpgwkSjwVZa+zYRvHzJULhoS0aQIhAP7b/sCU2/Il1ZO0xzuIlpt6u6WdvFOt5u3E4PV+1z43"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@emdzej%2fbimmerz-rpc-can@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20470},"main":"dist/index.js","name":"@emdzej/bimmerz-rpc-can","type":"module","_from":"file:emdzej-bimmerz-rpc-can-0.3.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"license":"PolyForm-Noncommercial-1.0.0","scripts":{"dev":"tsc --watch","lint":"eslint .","test":"vitest run","build":"tsc","clean":"rm -rf dist .turbo *.tsbuildinfo","typecheck":"tsc --noEmit"},"version":"0.3.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9cbb118-b5f2-4754-b953-aba116c2406b"}},"homepage":"https://github.com/emdzej/bimmerz-core#readme","_resolved":"/tmp/9e104a92cab7453fd54fb533cda3b554/emdzej-bimmerz-rpc-can-0.3.0.tgz","_integrity":"sha512-z1WXAR/SStAi07qKUXvLbh9hHI3C/n8nhidlwm0tenCBrapPlpiczj/GjI6jDCmVgrAuAPYQKe8xOj3zOSHZ/g==","repository":{"url":"git+https://github.com/emdzej/bimmerz-core.git","type":"git","directory":"packages/rpc-can"},"_npmVersion":"12.1.0","description":"Typed client for the bimmerz-box dongle's /rpc/can/<n> endpoint. Classical CAN frames, no FD. Built on @emdzej/bimmerz-rpc-core.","directories":{},"maintainers":[{"name":"emdzej","email":"michal@jaskolski.pro"}],"_nodeVersion":"22.23.2","dependencies":{"@emdzej/bimmerz-rpc-core":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.1","typescript":"^5.7.3","@types/node":"^22.13.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bimmerz-rpc-can_0.3.0_1790327469239_0.5841008451235978"}}},"time":{"created":"2026-06-12T09:52:21.998Z","modified":"2026-09-25T09:11:09.712Z","0.1.0":"2026-06-12T09:52:22.363Z","0.3.0":"2026-09-25T09:11:09.328Z"},"bugs":{"url":"https://github.com/emdzej/bimmerz-core/issues"},"homepage":"https://github.com/emdzej/bimmerz-core#readme","repository":{"url":"git+https://github.com/emdzej/bimmerz-core.git","type":"git","directory":"packages/rpc-can"},"description":"Typed client for the bimmerz-box dongle's /rpc/can/<n> endpoint. Classical CAN frames, no FD. Built on @emdzej/bimmerz-rpc-core.","maintainers":[{"name":"emdzej","email":"michal@jaskolski.pro"}],"readme":"# @emdzej/bimmerz-rpc-can\n\nTyped client for the bimmerz-box dongle's `/rpc/can/<n>` endpoint\n(`n = 0` and `n = 1` are the two TJA1051T transceivers on the custom\nPCB). Built on `@emdzej/bimmerz-rpc-core`.\n\nClassical CAN only — the dongle's TJA1051T transceivers don't support\nCAN-FD. Payloads are capped at 8 bytes.\n\n## Install\n\n```sh\npnpm add @emdzej/bimmerz-rpc-can\n```\n\n## Use\n\n```ts\nimport { connectCan } from \"@emdzej/bimmerz-rpc-can\";\n\nconst { can } = await connectCan(\"ws://172.16.7.1/rpc/can/0\", {\n  autoReconnect: true,\n});\n\nawait can.open({ bitrate: 500_000, mode: \"normal\" });\n\ncan.onRx((frame) => {\n  console.log(\n    `[${frame.ts}] ${frame.id.toString(16).padStart(3, \"0\")}: ${\n      Array.from(frame.data, (b) => b.toString(16).padStart(2, \"0\")).join(\" \")\n    }`,\n  );\n});\n\n// Send a frame\nawait can.send({\n  id: 0x6F1,\n  data: new Uint8Array([0x12, 0x21, 0x01]),\n});\n\nawait can.close();\n```\n\n## API mirror\n\nMethod → server call:\n\n| Method                          | Server endpoint  |\n|---------------------------------|------------------|\n| `can.open(opts)`                | `can.open`       |\n| `can.configure(opts)`           | `can.configure`  |\n| `can.send(frame)`               | `can.send`       |\n| `can.sendBatch(frames)`         | `can.sendBatch`  |\n| `can.recover()`                 | `can.recover`    |\n| `can.close()`                   | `can.close`      |\n| `can.onRx(handler)`             | subscribes to `can.rx` |\n| `can.onRevoked(handler)`        | subscribes to `can.revoked` |\n\n`CanFrame` data is `Uint8Array`; base64 encoding for the wire is\nhandled internally.\n\n## See also\n\n- [bimmerz-box API reference](https://github.com/emdzej/bimmerz-box/blob/main/docs/api.md#rpccann)\n- `@emdzej/bimmerz-rpc-core` — the JSON-RPC transport this builds on\n- `@emdzej/bimmerz-rpc-uart` — sibling client for the UART endpoint\n","readmeFilename":"README.md","license":"PolyForm-Noncommercial-1.0.0"}