@emdzej/bimmerz-rpc-uart 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.d.ts CHANGED
@@ -35,7 +35,14 @@ export declare class UartClient {
35
35
  /** Subscribe to revocation events (cooperative `open` from another client). */
36
36
  onRevoked(handler: (ev: UartRevokedEvent) => void): Unsubscribe;
37
37
  }
38
- /** Convenience: build the WS URL, open it, and wrap in a UartClient. */
38
+ /**
39
+ * Convenience: open `url` and wrap the connection in a UartClient.
40
+ *
41
+ * If the first connect fails the client is closed before the error is
42
+ * rethrown. The caller never receives `rpc` in that case, so with
43
+ * `autoReconnect` on nothing else could stop its retry loop — an unplugged
44
+ * dongle meant a new WebSocket every `reconnectDelayMs`, for ever.
45
+ */
39
46
  export declare function connectUart(url: string, options?: RpcClientOptions): Promise<{
40
47
  uart: UartClient;
41
48
  rpc: RpcClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAGjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,UAAU;aACO,GAAG,EAAE,SAAS;gBAAd,GAAG,EAAE,SAAS;IAE1C,8DAA8D;IACxD,IAAI,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D,qEAAqE;IAC/D,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpE,iFAAiF;IAC3E,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;IAMvD,qEAAqE;IAC/D,QAAQ,CACZ,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,UAAU,CAAC;IAQtB,2DAA2D;IACrD,QAAQ,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxE,0CAA0C;IACpC,QAAQ,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxE,6CAA6C;IACvC,KAAK,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIvC,uEAAuE;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,GAAG,WAAW;IAMrD,+EAA+E;IAC/E,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,GAAG,WAAW;CAGhE;AAED,wEAAwE;AACxE,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,SAAS,CAAA;CAAE,CAAC,CAI/C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAGjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,UAAU;aACO,GAAG,EAAE,SAAS;gBAAd,GAAG,EAAE,SAAS;IAE1C,8DAA8D;IACxD,IAAI,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D,qEAAqE;IAC/D,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpE,iFAAiF;IAC3E,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;IAMvD,qEAAqE;IAC/D,QAAQ,CACZ,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,UAAU,CAAC;IAQtB,2DAA2D;IACrD,QAAQ,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxE,0CAA0C;IACpC,QAAQ,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxE,6CAA6C;IACvC,KAAK,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIvC,uEAAuE;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,GAAG,WAAW;IAMrD,+EAA+E;IAC/E,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,GAAG,WAAW;CAGhE;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,SAAS,CAAA;CAAE,CAAC,CAS/C"}
package/dist/client.js CHANGED
@@ -53,10 +53,23 @@ export class UartClient {
53
53
  return this.rpc.on("uart.revoked", handler);
54
54
  }
55
55
  }
56
- /** Convenience: build the WS URL, open it, and wrap in a UartClient. */
56
+ /**
57
+ * Convenience: open `url` and wrap the connection in a UartClient.
58
+ *
59
+ * If the first connect fails the client is closed before the error is
60
+ * rethrown. The caller never receives `rpc` in that case, so with
61
+ * `autoReconnect` on nothing else could stop its retry loop — an unplugged
62
+ * dongle meant a new WebSocket every `reconnectDelayMs`, for ever.
63
+ */
57
64
  export async function connectUart(url, options) {
58
65
  const rpc = new RpcClient(url, options);
59
- await rpc.connect();
66
+ try {
67
+ await rpc.connect();
68
+ }
69
+ catch (e) {
70
+ rpc.close();
71
+ throw e;
72
+ }
60
73
  return { uart: new UartClient(rpc), rpc };
61
74
  }
62
75
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,SAAS,EAGT,YAAY,EACZ,YAAY,GACb,MAAM,0BAA0B,CAAC;AAclC,MAAM,OAAO,UAAU;IACO;IAA5B,YAA4B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE9C,8DAA8D;IAC9D,KAAK,CAAC,IAAI,CAAC,OAAwB,EAAE;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAiB,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,SAAS,CAAC,IAA0B;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAiB,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,KAAK,CAAC,IAAgB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,YAAY,EAAE;YACrD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,QAAQ,CACZ,IAAgB,EAChB,IAAyB;QAEzB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAC9B,eAAe,EACf,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAC7E,CAAC;QACF,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,QAAQ,CAAC,OAA4B,EAAE;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,eAAe,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,QAAQ,CAAC,OAA4B,EAAE;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,eAAe,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,YAAY,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,uEAAuE;IACvE,IAAI,CAAC,OAAkC;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAmB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;YACzD,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,SAAS,CAAC,OAAuC;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAmB,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,OAA0B;IAE1B,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,SAAS,EAGT,YAAY,EACZ,YAAY,GACb,MAAM,0BAA0B,CAAC;AAclC,MAAM,OAAO,UAAU;IACO;IAA5B,YAA4B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE9C,8DAA8D;IAC9D,KAAK,CAAC,IAAI,CAAC,OAAwB,EAAE;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAiB,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,SAAS,CAAC,IAA0B;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAiB,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,KAAK,CAAC,IAAgB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,YAAY,EAAE;YACrD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,QAAQ,CACZ,IAAgB,EAChB,IAAyB;QAEzB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAC9B,eAAe,EACf,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAC7E,CAAC;QACF,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,QAAQ,CAAC,OAA4B,EAAE;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,eAAe,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,QAAQ,CAAC,OAA4B,EAAE;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,eAAe,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAkB,YAAY,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,uEAAuE;IACvE,IAAI,CAAC,OAAkC;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAmB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;YACzD,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,SAAS,CAAC,OAAuC;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAmB,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,OAA0B;IAE1B,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,CAAC,CAAC;IACV,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@emdzej/bimmerz-rpc-uart",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "Typed client for the bimmerz-box dongle's /rpc/uart/<n> endpoint. Built on @emdzej/bimmerz-rpc-core.",
6
+ "license": "PolyForm-Noncommercial-1.0.0",
6
7
  "main": "dist/index.js",
7
8
  "types": "dist/index.d.ts",
8
9
  "exports": {
@@ -16,18 +17,19 @@
16
17
  "dist"
17
18
  ],
18
19
  "dependencies": {
19
- "@emdzej/bimmerz-rpc-core": "0.1.0"
20
+ "@emdzej/bimmerz-rpc-core": "0.3.0"
20
21
  },
21
22
  "devDependencies": {
22
23
  "@types/node": "^22.13.1",
23
- "typescript": "^5.7.3"
24
+ "typescript": "^5.7.3",
25
+ "vitest": "^5.0.1"
24
26
  },
25
27
  "publishConfig": {
26
28
  "access": "public"
27
29
  },
28
30
  "repository": {
29
31
  "type": "git",
30
- "url": "https://github.com/emdzej/bimmerz.git",
32
+ "url": "https://github.com/emdzej/bimmerz-core.git",
31
33
  "directory": "packages/rpc-uart"
32
34
  },
33
35
  "scripts": {
@@ -35,6 +37,7 @@
35
37
  "dev": "tsc --watch",
36
38
  "lint": "eslint .",
37
39
  "typecheck": "tsc --noEmit",
40
+ "test": "vitest run",
38
41
  "clean": "rm -rf dist .turbo *.tsbuildinfo"
39
42
  }
40
43
  }