@matter-server/ble-proxy 1.4.1-alpha.0-20260813-eaf19f2 → 1.4.1-alpha.0-20261009-dea00a8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BleProxyConnection.d.ts","sourceRoot":"","sources":["../../src/BleProxyConnection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,UAAU,EAA8B,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAIH,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAKzB,MAAM,uBAAuB,CAAC;AAiC/B;;;;GAIG;AACH,qBAAa,kBAAkB;;IAY3B,QAAQ,CAAC,mBAAmB,yCAA0C;IACtE,QAAQ,CAAC,aAAa,8EAA+E;IACrG,0EAA0E;IAC1E,QAAQ,CAAC,kBAAkB,uBAAwB;IACnD,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,uBAAwB;IAEvC,YAAY,EAAE,EAAE,SAAS,EA+BxB;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACG,WAAW,CAAC,CAAC,SAAS,mBAAmB,EAC3C,OAAO,EAAE,CAAC,EACV,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GACtG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CA0B1C;IAED,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAQnF;IAkGD,iFAAiF;IACjF,KAAK,IAAI,IAAI,CAKZ;CAeJ"}
1
+ {"version":3,"file":"BleProxyConnection.d.ts","sourceRoot":"","sources":["../../src/BleProxyConnection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKH,UAAU,EAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAKH,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAKzB,MAAM,uBAAuB,CAAC;AAqC/B;;;;GAIG;AACH,qBAAa,kBAAkB;;IAgB3B,QAAQ,CAAC,mBAAmB,yCAA0C;IACtE,QAAQ,CAAC,aAAa,8EAA+E;IACrG,0EAA0E;IAC1E,QAAQ,CAAC,kBAAkB,uBAAwB;IACnD,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,uBAAwB;IAEvC,YAAY,EAAE,EAAE,SAAS,EAoCxB;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACG,WAAW,CAAC,CAAC,SAAS,mBAAmB,EAC3C,OAAO,EAAE,CAAC,EACV,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GACtG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CA0B1C;IAED,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAQnF;IA4GD,iFAAiF;IACjF,KAAK,IAAI,IAAI,CAKZ;CAkCJ"}
@@ -3,11 +3,21 @@
3
3
  * Copyright 2025-2026 Open Home Foundation
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { createPromise, Logger, Observable, Seconds, Time, withTimeout } from "@matter/main";
6
+ import {
7
+ createPromise,
8
+ Duration,
9
+ Logger,
10
+ Millis,
11
+ Observable,
12
+ Seconds,
13
+ Time,
14
+ withTimeout
15
+ } from "@matter/main";
7
16
  import { Mark } from "@matter/main/protocol";
8
17
  import { WebSocket } from "ws";
9
18
  import {
10
19
  BLE_PROXY_PROTOCOL_VERSION,
20
+ BleProxyCommandError,
11
21
  decodeBinaryFrame,
12
22
  encodeBinaryFrame
13
23
  } from "./BleProxyProtocol.js";
@@ -21,14 +31,20 @@ function generateConnectionId() {
21
31
  }
22
32
  const HANDSHAKE_TIMEOUT = Seconds(10);
23
33
  const COMMAND_TIMEOUT = Seconds(60);
34
+ const PING_INTERVAL = Seconds(15);
35
+ const LIVENESS_TIMEOUT = Seconds(45);
24
36
  class BleProxyConnection {
25
37
  #ws;
26
38
  #id = generateConnectionId();
27
39
  #handshakeComplete = false;
28
40
  #closedEmitted = false;
41
+ /** Cleanup is terminal: a torn-down connection must never handshake again on a late `hello`. */
42
+ #destroyed = false;
29
43
  #pendingCommands = /* @__PURE__ */ new Map();
30
44
  /** Command ID counter. Rolls over at 0xFFFF to stay in safe integer range. */
31
45
  #nextCommandId = 0;
46
+ #lastSeen = Time.nowUs;
47
+ #livenessTimer;
32
48
  binaryFrameReceived = new Observable();
33
49
  eventReceived = new Observable();
34
50
  /** Emitted once when this connection completes the protocol handshake. */
@@ -45,7 +61,11 @@ class BleProxyConnection {
45
61
  this.#cleanup();
46
62
  }
47
63
  }).start();
64
+ ws.on("pong", () => {
65
+ this.#lastSeen = Time.nowUs;
66
+ });
48
67
  ws.on("message", (data, isBinary) => {
68
+ this.#lastSeen = Time.nowUs;
49
69
  if (isBinary) {
50
70
  this.#handleBinaryMessage(data);
51
71
  } else {
@@ -104,6 +124,9 @@ class BleProxyConnection {
104
124
  this.#ws.send(encodeBinaryFrame(opcode, connectionHandle, payload));
105
125
  }
106
126
  #handleTextMessage(raw, handshakeTimer) {
127
+ if (this.#destroyed) {
128
+ return;
129
+ }
107
130
  let parsed;
108
131
  try {
109
132
  parsed = JSON.parse(raw);
@@ -153,6 +176,7 @@ class BleProxyConnection {
153
176
  return;
154
177
  }
155
178
  this.#handshakeComplete = true;
179
+ this.#startLivenessCheck();
156
180
  this.#ws.send(JSON.stringify({ type: "hello_response", version: BLE_PROXY_PROTOCOL_VERSION }));
157
181
  logger.info(`[${this.#id}] BLE proxy handshake complete (version ${BLE_PROXY_PROTOCOL_VERSION})`);
158
182
  this.handshakeCompleted.emit();
@@ -167,10 +191,13 @@ class BleProxyConnection {
167
191
  if (msg.success) {
168
192
  pending.resolver(msg.result);
169
193
  } else {
170
- pending.rejecter(new Error(`${msg.error}: ${msg.message}`));
194
+ pending.rejecter(new BleProxyCommandError(String(msg.error), String(msg.message)));
171
195
  }
172
196
  }
173
197
  #handleBinaryMessage(data) {
198
+ if (this.#destroyed) {
199
+ return;
200
+ }
174
201
  if (!this.#handshakeComplete) {
175
202
  logger.warn(`[${this.#id}] Received binary frame before handshake`);
176
203
  return;
@@ -192,8 +219,26 @@ class BleProxyConnection {
192
219
  }
193
220
  this.#cleanup();
194
221
  }
222
+ #startLivenessCheck() {
223
+ this.#lastSeen = Time.nowUs;
224
+ this.#livenessTimer = Time.getPeriodicTimer("BLE proxy liveness check", PING_INTERVAL, () => {
225
+ const silence = Millis(Time.nowUs - this.#lastSeen);
226
+ if (silence > LIVENESS_TIMEOUT) {
227
+ logger.warn(
228
+ `[${this.#id}] No response for ${Duration.format(silence)} - terminating dead BLE proxy connection`
229
+ );
230
+ this.#ws.terminate();
231
+ this.#cleanup();
232
+ return;
233
+ }
234
+ this.#ws.ping();
235
+ }).start();
236
+ }
195
237
  #cleanup() {
238
+ this.#destroyed = true;
196
239
  this.#handshakeComplete = false;
240
+ this.#livenessTimer?.stop();
241
+ this.#livenessTimer = void 0;
197
242
  for (const [id, pending] of this.#pendingCommands) {
198
243
  pending.rejecter(new Error("BLE proxy client disconnected"));
199
244
  this.#pendingCommands.delete(id);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BleProxyConnection.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BleProxyHandler.d.ts","sourceRoot":"","sources":["../../src/BleProxyHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAU,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAkC,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtH,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAIlD;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;;IAgBpD,6DAA6D;IAC7D,QAAQ,CAAC,qBAAqB,uBAAwB;IACtD,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,iFAAkF;IAC3G,sDAAsD;IACtD,QAAQ,CAAC,WAAW,qCAAsC;IAE1D,IAAI,SAAS,IAAI,OAAO,CAKvB;IAEK,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChD;IAED,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B1B;IAED,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAIxD;IAEK,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlD;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAc9B;CAuEJ"}
1
+ {"version":3,"file":"BleProxyHandler.d.ts","sourceRoot":"","sources":["../../src/BleProxyHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAU,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAMH,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACrB,MAAM,uBAAuB,CAAC;AAE/B,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAQlD;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;;IAgBpD,6DAA6D;IAC7D,QAAQ,CAAC,qBAAqB,uBAAwB;IACtD,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,iFAAkF;IAC3G,sDAAsD;IACtD,QAAQ,CAAC,WAAW,qCAAsC;IAE1D,IAAI,SAAS,IAAI,OAAO,CAKvB;IAEK,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChD;IAED,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B1B;IAED,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAIxD;IAEK,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAelD;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB9B;CAiFJ"}
@@ -6,8 +6,16 @@
6
6
  import { Logger, Observable } from "@matter/main";
7
7
  import { WebSocket, WebSocketServer } from "ws";
8
8
  import { BleProxyConnection } from "./BleProxyConnection.js";
9
- import { BleProxyCommand, BleProxyEvent } from "./BleProxyProtocol.js";
9
+ import {
10
+ BleProxyCommand,
11
+ BleProxyCommandError,
12
+ BleProxyErrorCode,
13
+ BleProxyEvent
14
+ } from "./BleProxyProtocol.js";
10
15
  const logger = Logger.get("BleProxyHandler");
16
+ function isErrorCode(err, code) {
17
+ return err instanceof BleProxyCommandError && err.code === code;
18
+ }
11
19
  class BleProxyHandler {
12
20
  #wss;
13
21
  /** Upgrade listener removers, one per HTTP server `register()` call (multi-bind). */
@@ -106,8 +114,7 @@ class BleProxyHandler {
106
114
  this.#scanning.add(connection);
107
115
  sends.push(
108
116
  connection.sendCommand(BleProxyCommand.StartScan, args).catch((err) => {
109
- logger.warn(`[${connection.id}] Failed to start scan:`, err);
110
- this.#markNotScanning(connection, "start scan failed");
117
+ this.#onStartScanRejected(connection, err);
111
118
  })
112
119
  );
113
120
  }
@@ -120,7 +127,13 @@ class BleProxyHandler {
120
127
  for (const connection of this.#connections) {
121
128
  if (connection.connected) {
122
129
  sends.push(
123
- connection.sendCommand(BleProxyCommand.StopScan).catch((err) => logger.warn(`[${connection.id}] Failed to stop scan:`, err))
130
+ connection.sendCommand(BleProxyCommand.StopScan).catch((err) => {
131
+ if (isErrorCode(err, BleProxyErrorCode.NotScanning)) {
132
+ logger.debug(`[${connection.id}] was not scanning`);
133
+ return;
134
+ }
135
+ logger.warn(`[${connection.id}] Failed to stop scan:`, err);
136
+ })
124
137
  );
125
138
  }
126
139
  }
@@ -132,8 +145,7 @@ class BleProxyHandler {
132
145
  if (this.#scanActive && this.#scanArgs) {
133
146
  this.#scanning.add(connection);
134
147
  connection.sendCommand(BleProxyCommand.StartScan, this.#scanArgs).catch((err) => {
135
- logger.warn(`[${connection.id}] Failed to sync scan to joining client:`, err);
136
- this.#markNotScanning(connection, "start scan failed");
148
+ this.#onStartScanRejected(connection, err);
137
149
  });
138
150
  }
139
151
  }
@@ -144,6 +156,14 @@ class BleProxyHandler {
144
156
  this.#markNotScanning(connection, data.reason ?? "unknown");
145
157
  }
146
158
  }
159
+ #onStartScanRejected(connection, err) {
160
+ if (isErrorCode(err, BleProxyErrorCode.AlreadyScanning)) {
161
+ logger.debug(`[${connection.id}] was already scanning`);
162
+ return;
163
+ }
164
+ logger.warn(`[${connection.id}] Failed to start scan:`, err);
165
+ this.#markNotScanning(connection, "start scan failed");
166
+ }
147
167
  /** Drop a connection from the scanning set; emit aggregate scanStopped once none remain. */
148
168
  #markNotScanning(connection, reason) {
149
169
  if (!this.#scanning.delete(connection)) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BleProxyHandler.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,QAAQ,kBAAkB;AAEnC,SAAS,WAAW,uBAAuB;AAC3C,SAAS,0BAA0B;AACnC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OAGG;AAIP,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAE3C,SAAS,YAAY,KAAc,MAAuC;AACtE,SAAO,eAAe,wBAAwB,IAAI,SAAS;AAC/D;AASO,MAAM,gBAA4C;AAAA,EACrD;AAAA;AAAA,EAEA,0BAA0C,CAAC;AAAA,EAC3C,eAAe,oBAAI,IAAwB;AAAA,EAC3C,UAAU;AAAA;AAAA,EAGV,cAAc;AAAA,EACd;AAAA;AAAA,EAEA,YAAY,oBAAI,IAAwB;AAAA;AAAA,EAGxC,UAAU,oBAAI,IAA2E;AAAA;AAAA,EAGhF,wBAAwB,IAAI,WAAe;AAAA;AAAA,EAE3C,mBAAmB,IAAI,WAAyE;AAAA;AAAA,EAEhG,cAAc,IAAI,WAA6B;AAAA,EAExD,IAAI,YAAqB;AACrB,eAAW,KAAK,KAAK,cAAc;AAC/B,UAAI,EAAE,UAAW,QAAO;AAAA,IAC5B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,SAAS,QAAmC;AAC9C,UAAM,cAAc,KAAK,SAAS;AAClC,UAAM,MAAO,KAAK,SAAS,IAAI,gBAAgB,EAAE,UAAU,KAAK,CAAC;AACjE,UAAM,iBAAiB,CACnB,KACA,QACA,SACC;AACD,aAAO,MAAM,6BAA6B,IAAI,GAAG,EAAE;AACnD,YAAM,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC;AAClC,UAAI,SAAS,QAAQ;AACjB,YAAI,wBAAwB;AAC5B,YAAI;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,QAAM,IAAI,KAAK,cAAc,IAAI,GAAG;AAAA,QACxC;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,GAAG,WAAW,cAAc;AACnC,SAAK,wBAAwB,KAAK,MAAM,OAAO,eAAe,WAAW,cAAc,CAAC;AACxF,WAAO,KAAK,iDAAiD;AAE7D,QAAI,CAAC,aAAa;AACd;AAAA,IACJ;AAEA,QAAI,GAAG,cAAc,QAAM;AACvB,UAAI,KAAK,SAAS;AACd,WAAG,MAAM;AACT;AAAA,MACJ;AAEA,YAAM,aAAa,IAAI,mBAAmB,EAAE;AAC5C,WAAK,aAAa,IAAI,UAAU;AAEhC,iBAAW,mBAAmB,GAAG,MAAM,KAAK,sBAAsB,UAAU,CAAC;AAC7E,iBAAW,cAAc,GAAG,CAAC,OAAO,SAAS,KAAK,mBAAmB,YAAY,OAAO,IAAI,CAAC;AAC7F,iBAAW,OAAO,GAAG,MAAM,KAAK,oBAAoB,UAAU,CAAC;AAAA,IACnE,CAAC;AAAA,EACL;AAAA,EAEA,aAA4B;AACxB,QAAI,CAAC,KAAK,QAAQ,KAAK,SAAS;AAC5B,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAEA,SAAK,UAAU;AACf,eAAW,UAAU,KAAK,wBAAyB,QAAO;AAC1D,SAAK,0BAA0B,CAAC;AAEhC,eAAW,cAAc,KAAK,cAAc;AACxC,iBAAW,MAAM;AAAA,IACrB;AACA,SAAK,aAAa,MAAM;AACxB,SAAK,UAAU,MAAM;AACrB,SAAK,QAAQ,MAAM;AAEnB,UAAM,MAAM,KAAK;AACjB,SAAK,OAAO;AAEZ,QAAI,QAAQ,QAAQ,YAAU;AAC1B,UAAI,OAAO,eAAe,UAAU,MAAM;AACtC,eAAO,MAAM;AAAA,MACjB;AAAA,IACJ,CAAC;AAED,WAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC1C,UAAI,MAAM,SAAQ,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAE;AAAA,IACpD,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,SAAS,SAAiD;AACtD,UAAM,QAAQ,KAAK,QAAQ,IAAI,OAAO;AACtC,QAAI,SAAS,MAAM,MAAM,UAAW,QAAO,MAAM;AACjD,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,UAAU,MAAoC;AAChD,SAAK,cAAc;AACnB,SAAK,YAAY;AACjB,UAAM,QAAQ,IAAI,MAAwB;AAC1C,eAAW,cAAc,KAAK,cAAc;AACxC,UAAI,WAAW,WAAW;AACtB,aAAK,UAAU,IAAI,UAAU;AAC7B,cAAM;AAAA,UACF,WAAW,YAAY,gBAAgB,WAAW,IAAI,EAAE,MAAM,SAAO;AACjE,iBAAK,qBAAqB,YAAY,GAAG;AAAA,UAC7C,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,QAAQ,IAAI,KAAK;AAAA,EAC3B;AAAA,EAEA,MAAM,WAA0B;AAC5B,SAAK,cAAc;AACnB,UAAM,QAAQ,IAAI,MAAwB;AAC1C,eAAW,cAAc,KAAK,cAAc;AACxC,UAAI,WAAW,WAAW;AACtB,cAAM;AAAA,UACF,WAAW,YAAY,gBAAgB,QAAQ,EAAE,MAAM,SAAO;AAC1D,gBAAI,YAAY,KAAK,kBAAkB,WAAW,GAAG;AACjD,qBAAO,MAAM,IAAI,WAAW,EAAE,oBAAoB;AAClD;AAAA,YACJ;AACA,mBAAO,KAAK,IAAI,WAAW,EAAE,0BAA0B,GAAG;AAAA,UAC9D,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AACA,SAAK,UAAU,MAAM;AACrB,UAAM,QAAQ,IAAI,KAAK;AAAA,EAC3B;AAAA,EAEA,sBAAsB,YAAsC;AACxD,SAAK,sBAAsB,KAAK;AAChC,QAAI,KAAK,eAAe,KAAK,WAAW;AACpC,WAAK,UAAU,IAAI,UAAU;AAC7B,iBAAW,YAAY,gBAAgB,WAAW,KAAK,SAAS,EAAE,MAAM,SAAO;AAC3E,aAAK,qBAAqB,YAAY,GAAG;AAAA,MAC7C,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,mBAAmB,YAAgC,OAAe,MAAqC;AACnG,QAAI,UAAU,cAAc,kBAAkB;AAC1C,WAAK,oBAAoB,YAAY,IAAuC;AAAA,IAChF,WAAW,UAAU,cAAc,aAAa;AAC5C,WAAK,iBAAiB,YAAa,KAA6B,UAAU,SAAS;AAAA,IACvF;AAAA,EACJ;AAAA,EAEA,qBAAqB,YAAgC,KAAoB;AAGrE,QAAI,YAAY,KAAK,kBAAkB,eAAe,GAAG;AACrD,aAAO,MAAM,IAAI,WAAW,EAAE,wBAAwB;AACtD;AAAA,IACJ;AACA,WAAO,KAAK,IAAI,WAAW,EAAE,2BAA2B,GAAG;AAC3D,SAAK,iBAAiB,YAAY,mBAAmB;AAAA,EACzD;AAAA;AAAA,EAGA,iBAAiB,YAAgC,QAAsB;AACnE,QAAI,CAAC,KAAK,UAAU,OAAO,UAAU,GAAG;AACpC;AAAA,IACJ;AACA,QAAI,KAAK,UAAU,SAAS,GAAG;AAC3B,WAAK,YAAY,KAAK,MAAM;AAAA,IAChC;AAAA,EACJ;AAAA,EAEA,oBAAoB,YAAgC,MAAkC;AAClF,QAAI,QAAQ,KAAK,QAAQ,IAAI,KAAK,OAAO;AACzC,QAAI,CAAC,OAAO;AACR,cAAQ,EAAE,OAAO,YAAY,OAAO,oBAAI,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1D,WAAK,QAAQ,IAAI,KAAK,SAAS,KAAK;AAAA,IACxC,OAAO;AACH,YAAM,MAAM,IAAI,UAAU;AAC1B,UAAI,CAAC,MAAM,MAAM,WAAW;AACxB,cAAM,QAAQ;AAAA,MAClB;AAAA,IACJ;AACA,WAAO;AAAA,MACH,IAAI,WAAW,EAAE,uBAAuB,KAAK,OAAO,SAAS,KAAK,QAAQ,KAAK,UAAU,MAAM,MAAM,IAAI,YAAY,MAAM,UAAU,UAAU;AAAA,IACnJ;AACA,SAAK,iBAAiB,KAAK,MAAM,UAAU;AAAA,EAC/C;AAAA,EAEA,oBAAoB,YAAsC;AACtD,SAAK,aAAa,OAAO,UAAU;AACnC,SAAK,iBAAiB,YAAY,qBAAqB;AAEvD,eAAW,CAAC,SAAS,KAAK,KAAK,KAAK,SAAS;AACzC,YAAM,MAAM,OAAO,UAAU;AAC7B,UAAI,MAAM,UAAU,YAAY;AAC5B,YAAI;AACJ,mBAAW,QAAQ,MAAM,OAAO;AAC5B,cAAI,KAAK,WAAW;AAChB,mBAAO;AACP;AAAA,UACJ;AAAA,QACJ;AACA,YAAI,MAAM;AACN,gBAAM,QAAQ;AACd,iBAAO,KAAK,2BAA2B,OAAO,QAAQ,KAAK,EAAE,GAAG;AAAA,QACpE,OAAO;AACH,eAAK,QAAQ,OAAO,OAAO;AAAA,QAC/B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -230,6 +230,12 @@ export declare const BleProxyErrorCode: {
230
230
  readonly InternalError: "internal_error";
231
231
  };
232
232
  export type BleProxyErrorCodeValue = (typeof BleProxyErrorCode)[keyof typeof BleProxyErrorCode];
233
+ /** A command the client answered with `success: false`, carrying the protocol error code. */
234
+ export declare class BleProxyCommandError extends Error {
235
+ readonly code: string;
236
+ readonly detail: string;
237
+ constructor(code: string, detail: string);
238
+ }
233
239
  export declare const BinaryFrameOpcode: {
234
240
  /** Server -> Client: write payload to the active write characteristic */
235
241
  readonly WriteData: 1;
@@ -1 +1 @@
1
- {"version":3,"file":"BleProxyProtocol.d.ts","sourceRoot":"","sources":["../../src/BleProxyProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BleProxyProtocol.d.ts","sourceRoot":"","sources":["../../src/BleProxyProtocol.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,16 @@ const BleProxyErrorCode = {
44
44
  DiscoveryFailed: "discovery_failed",
45
45
  InternalError: "internal_error"
46
46
  };
47
+ class BleProxyCommandError extends Error {
48
+ constructor(code, detail) {
49
+ super(`${code}: ${detail}`);
50
+ this.code = code;
51
+ this.detail = detail;
52
+ this.name = "BleProxyCommandError";
53
+ }
54
+ code;
55
+ detail;
56
+ }
47
57
  const BinaryFrameOpcode = {
48
58
  /** Server -> Client: write payload to the active write characteristic */
49
59
  WriteData: 1,
@@ -75,6 +85,7 @@ export {
75
85
  BLE_PROXY_PROTOCOL_VERSION,
76
86
  BinaryFrameOpcode,
77
87
  BleProxyCommand,
88
+ BleProxyCommandError,
78
89
  BleProxyErrorCode,
79
90
  BleProxyEvent,
80
91
  decodeBinaryFrame,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BleProxyProtocol.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,6BAA6B;AAoBnC,MAAM,kBAAkB;AAAA,EAC3B,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,mBAAmB;AAAA,EACnB,2BAA2B;AAAA,EAC3B,YAAY;AAChB;AAMO,MAAM,gBAAgB;AAAA,EACzB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,4BAA4B;AAChC;AA+KO,MAAM,oBAAoB;AAAA,EAC7B,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EACxB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,eAAe;AACnB;AAMO,MAAM,oBAAoB;AAAA;AAAA,EAE7B,WAAW;AAAA;AAAA,EAEX,cAAc;AAAA;AAAA,EAEd,cAAc;AAClB;AAaA,MAAM,2BAA2B;AAQ1B,SAAS,kBAAkB,QAAgB,kBAA0B,SAAiC;AACzG,QAAM,QAAQ,IAAI,WAAW,2BAA2B,QAAQ,MAAM;AACtE,QAAM,CAAC,IAAI,SAAS;AACpB,QAAM,CAAC,IAAK,oBAAoB,IAAK;AACrC,QAAM,CAAC,IAAI,mBAAmB;AAC9B,QAAM,IAAI,SAAS,wBAAwB;AAC3C,SAAO;AACX;AAEO,SAAS,kBAAkB,MAA+B;AAC7D,MAAI,KAAK,SAAS,0BAA0B;AACxC,UAAM,IAAI,MAAM,2BAA2B,KAAK,MAAM,mBAAmB,wBAAwB,EAAE;AAAA,EACvG;AACA,SAAO;AAAA,IACH,QAAQ,KAAK,CAAC;AAAA,IACd,kBAAmB,KAAK,CAAC,KAAK,IAAK,KAAK,CAAC;AAAA,IACzC,SAAS,KAAK,SAAS,wBAAwB;AAAA,EACnD;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,6BAA6B;AAoBnC,MAAM,kBAAkB;AAAA,EAC3B,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,mBAAmB;AAAA,EACnB,2BAA2B;AAAA,EAC3B,YAAY;AAChB;AAMO,MAAM,gBAAgB;AAAA,EACzB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,4BAA4B;AAChC;AA+KO,MAAM,oBAAoB;AAAA,EAC7B,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EACxB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,eAAe;AACnB;AAKO,MAAM,6BAA6B,MAAM;AAAA,EAC5C,YACa,MACA,QACX;AACE,UAAM,GAAG,IAAI,KAAK,MAAM,EAAE;AAHjB;AACA;AAGT,SAAK,OAAO;AAAA,EAChB;AAAA,EALa;AAAA,EACA;AAKjB;AAIO,MAAM,oBAAoB;AAAA;AAAA,EAE7B,WAAW;AAAA;AAAA,EAEX,cAAc;AAAA;AAAA,EAEd,cAAc;AAClB;AAaA,MAAM,2BAA2B;AAQ1B,SAAS,kBAAkB,QAAgB,kBAA0B,SAAiC;AACzG,QAAM,QAAQ,IAAI,WAAW,2BAA2B,QAAQ,MAAM;AACtE,QAAM,CAAC,IAAI,SAAS;AACpB,QAAM,CAAC,IAAK,oBAAoB,IAAK;AACrC,QAAM,CAAC,IAAI,mBAAmB;AAC9B,QAAM,IAAI,SAAS,wBAAwB;AAC3C,SAAO;AACX;AAEO,SAAS,kBAAkB,MAA+B;AAC7D,MAAI,KAAK,SAAS,0BAA0B;AACxC,UAAM,IAAI,MAAM,2BAA2B,KAAK,MAAM,mBAAmB,wBAAwB,EAAE;AAAA,EACvG;AACA,SAAO;AAAA,IACH,QAAQ,KAAK,CAAC;AAAA,IACd,kBAAmB,KAAK,CAAC,KAAK,IAAK,KAAK,CAAC;AAAA,IACzC,SAAS,KAAK,SAAS,wBAAwB;AAAA,EACnD;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyBleChannel.d.ts","sourceRoot":"","sources":["../../src/ProxyBleChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,WAAW,EAKX,aAAa,EAEb,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAoC,iBAAiB,EAAa,MAAM,uBAAuB,CAAC;AACnH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAgC5D;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,SAAS;;IAMtD,YAAY,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAGhE;IAEK,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CA2PjE;IAED,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,SAAS,CAAC,QAAQ,CAKlF;IAEK,KAAK,kBAEV;IAED,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,2BAE5C;CACJ;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,UAAU,CAAC,KAAK,CAAC;;IAWlD,YAAY,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,IAAI,EAOjG;IAED,IAAI,SAAS,YAEZ;IAED,gBAAgB,SAEf;IAED,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAQ7B;IAED,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAOhD;IAED,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAc7C;IAUK,IAAI,CAAC,IAAI,EAAE,KAAK,iBASrB;IAED,IAAI,IAAI,WAEP;IAEK,KAAK,kBAUV;CACJ"}
1
+ {"version":3,"file":"ProxyBleChannel.d.ts","sourceRoot":"","sources":["../../src/ProxyBleChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,WAAW,EAKX,aAAa,EAEb,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAoC,iBAAiB,EAAa,MAAM,uBAAuB,CAAC;AACnH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAgC5D;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,SAAS;;IAMtD,YAAY,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAGhE;IAEK,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CA4PjE;IAED,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,SAAS,CAAC,QAAQ,CAKlF;IAEK,KAAK,kBAEV;IAED,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,2BAE5C;CACJ;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,UAAU,CAAC,KAAK,CAAC;;IAWlD,YAAY,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,IAAI,EAOjG;IAED,IAAI,SAAS,YAEZ;IAED,gBAAgB,SAEf;IAED,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAQ7B;IAED,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAOhD;IAED,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAc7C;IAUK,IAAI,CAAC,IAAI,EAAE,KAAK,iBASrB;IAED,IAAI,IAAI,WAEP;IAEK,KAAK,kBAUV;CACJ"}
@@ -191,7 +191,8 @@ class ProxyBleCentralInterface {
191
191
  channelRef.channel.pushMessage(data);
192
192
  onMatterMessageListener(channelRef.channel, data);
193
193
  }
194
- }
194
+ },
195
+ mtu
195
196
  );
196
197
  sessionRef.session = btpSession;
197
198
  for (const payload of earlyFrames) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ProxyBleChannel.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EAGI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEG;AACP,SAAS,YAAY,UAAU,UAAU,cAAc,mBAAmB,iBAAiB;AAE3F,SAAS,mBAAmB,iBAAiB,qBAAqB;AAGlE,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAG3C,MAAM,kCAAkC;AACxC,MAAM,kCAAkC;AACxC,MAAM,gCAAgC;AAWtC,SAAS,gBAAgB,MAAsB;AAC3C,QAAM,QAAQ,KAAK,YAAY;AAC/B,MAAI,MAAM,WAAW,IAAI;AACrB,WAAO;AAAA,MACH,MAAM,UAAU,GAAG,CAAC;AAAA,MACpB,MAAM,UAAU,GAAG,EAAE;AAAA,MACrB,MAAM,UAAU,IAAI,EAAE;AAAA,MACtB,MAAM,UAAU,IAAI,EAAE;AAAA,MACtB,MAAM,UAAU,IAAI,EAAE;AAAA,IAC1B,EAAE,KAAK,GAAG;AAAA,EACd;AACA,SAAO;AACX;AAMO,MAAM,yBAA8C;AAAA,EAC9C;AAAA,EACA;AAAA,EACT;AAAA,EACA,UAAU;AAAA,EAEV,YAAY,YAA6B,SAA0B;AAC/D,SAAK,cAAc;AACnB,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,MAAM,YAAY,SAAiD;AAC/D,QAAI,KAAK,SAAS;AACd,YAAM,IAAI,aAAa,6BAA6B;AAAA,IACxD;AACA,QAAI,CAAC,cAAc,MAAM,OAAO,GAAG;AAC/B,YAAM,IAAI,cAAc,2CAA2C;AAAA,IACvE;AACA,QAAI,KAAK,6BAA6B,QAAW;AAC7C,YAAM,IAAI,cAAc,oDAAoD;AAAA,IAChF;AAEA,UAAM,EAAE,kBAAkB,IAAI;AAE9B,UAAM,aAAa,KAAK,SAAS,SAAS,iBAAiB;AAC3D,QAAI,CAAC,YAAY;AACb,YAAM,IAAI,SAAS,iDAAiD,iBAAiB,EAAE;AAAA,IAC3F;AAEA,UAAM,aAAa,KAAK,YAAY,oBAAoB,iBAAiB;AACzE,UAAM,EAAE,+BAA+B,IAAI;AAC3C,UAAM,OAAO,WAAW,WAAW;AAEnC,WAAO,MAAM,4BAA4B,iBAAiB,UAAU,QAAQ,KAAK,aAAa;AAG9F,UAAM,EAAE,mBAAmB,KAAK,cAAc,IAAI,MAAM,WAAW,YAAY,gBAAgB,SAAS;AAAA,MACpG,SAAS;AAAA,IACb,CAAC;AAED,UAAM,MAAM,UAAU,yBAAyB,iBAAiB,CAAC;AACjE,WAAO;AAAA,MACH,gBAAgB,iBAAiB,YAAY,iBAAiB,sBAAsB,GAAG,oCAAoC,iBAAiB,KAAK,WAAW,QAAQ,KAAK;AAAA,IAC7K;AAIA,QAAI;AAEJ,QAAI;AAEA,YAAM,EAAE,SAAS,IAAI,MAAM,WAAW,YAAY,gBAAgB,kBAAkB;AAAA,QAChF;AAAA,MACJ,CAAC;AAED,YAAM,gBAAgB,SAAS,KAAK,OAAK,UAAU,cAAc,EAAE,IAAI,CAAC;AACxE,UAAI,CAAC,eAAe;AAChB,cAAM,IAAI,SAAS,cAAc,iBAAiB,mCAAmC;AAAA,MACzF;AAGA,YAAM,EAAE,gBAAgB,IAAI,MAAM,WAAW,YAAY,gBAAgB,yBAAyB;AAAA,QAC9F;AAAA,QACA,cAAc,cAAc;AAAA,MAChC,CAAC;AAED,UAAI;AACJ,UAAI;AACJ,UAAI;AAEJ,iBAAW,QAAQ,iBAAiB;AAChC,cAAM,YAAY,gBAAgB,KAAK,IAAI;AAC3C,YAAI,cAAc,UAAU,wBAAwB;AAChD,mBAAS,KAAK;AAAA,QAClB,WAAW,cAAc,UAAU,wBAAwB;AACvD,mBAAS,KAAK;AAAA,QAClB,WAAW,cAAc,UAAU,wBAAwB;AACvD,mBAAS,KAAK;AAAA,QAClB;AAAA,MACJ;AAEA,UAAI,CAAC,UAAU,CAAC,QAAQ;AACpB,cAAM,IAAI,SAAS,cAAc,iBAAiB,kDAAkD;AAAA,MACxG;AAGA,UAAI,UAAU,gCAAgC;AAC1C,eAAO,MAAM,+CAA+C;AAC5D,cAAM,WAAW,YAAY,gBAAgB,oBAAoB;AAAA,UAC7D;AAAA,UACA,qBAAqB;AAAA,QACzB,CAAC;AAAA,MACL;AAKA,YAAM;AAAA,QACF,SAAS;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,MACd,IAAI,cAA0B;AAE9B,YAAM,sBAAsB,KAAK;AAAA,QAC7B;AAAA,QACA,UAAU;AAAA,QACV,MAAM;AACF,4BAAkB,IAAI,SAAS,4CAA4C,iBAAiB,EAAE,CAAC;AAAA,QACnG;AAAA,MACJ,EAAE,MAAM;AAER,YAAM,oBAAoB,CAAC,UAA6E;AACpG,YAAI,MAAM,qBAAqB,qBAAqB,MAAM,WAAW,kBAAkB,cAAc;AACjG,gBAAM,OAAO,IAAI,WAAW,MAAM,OAAO;AACzC,cACI,KAAK,CAAC,MAAM,mCACZ,KAAK,CAAC,MAAM,mCACZ,KAAK,WAAW,+BAClB;AACE,gCAAoB,KAAK;AACzB,8BAAkB,IAAI;AAAA,UAC1B;AAAA,QACJ;AAAA,MACJ;AACA,iBAAW,oBAAoB,GAAG,iBAAiB;AAInD,YAAM,sBAAsB,SAAS,0BAA0B;AAAA,QAC3D,UAAU,UAAU;AAAA,QACpB,QAAQ;AAAA,QACR,kBAAkB,UAAU;AAAA,MAChC,CAAC;AACD,aAAO,MAAM,mEAAmE;AAEhF,UAAI;AACJ,UAAI;AAIA,cAAM,oBAAoB,WAAW,YAAY,gBAAgB,mBAAmB;AAAA,UAChF;AAAA,UACA,YAAY;AAAA,UACZ,aAAa,OAAO,KAAK,mBAAkC,EAAE,SAAS,QAAQ;AAAA,UAC9E,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,QACpB,CAAC;AACD,SAAC,EAAE,iBAAiB,IAAI,MAAM,QAAQ,IAAI,CAAC,mBAAmB,gBAAgB,CAAC;AAAA,MACnF,UAAE;AACE,mBAAW,oBAAoB,IAAI,iBAAiB;AACpD,4BAAoB,KAAK;AAAA,MAC7B;AAIA,YAAM,0BAA0B,KAAK;AACrC,YAAM,aAA4C,CAAC;AACnD,YAAM,aAA8C,CAAC;AACrD,YAAM,cAAc,IAAI,MAAkB;AAE1C,YAAM,eAAe,CAAC,YAAwB;AAC1C,mBAAW,SACL,sBAAsB,OAAO,EAC9B;AAAA,UAAM,WACH,OAAO,KAAK,cAAc,iBAAiB,sCAAsC,KAAK;AAAA,QAC1F;AAAA,MACR;AAEA,YAAM,iBAAiB,CAAC,UAA6E;AACjG,YAAI,MAAM,qBAAqB,qBAAqB,MAAM,WAAW,kBAAkB,cAAc;AACjG,gBAAM,UAAU,IAAI,WAAW,MAAM,OAAO;AAC5C,cAAI,WAAW,SAAS;AACpB,yBAAa,OAAO;AAAA,UACxB,OAAO;AACH,wBAAY,KAAK,OAAO;AAAA,UAC5B;AAAA,QACJ;AAAA,MACJ;AACA,iBAAW,oBAAoB,GAAG,cAAc;AAChD,wBAAkB,MAAM,WAAW,oBAAoB,IAAI,cAAc;AAGzE,YAAM,aAAa,MAAM,kBAAkB;AAAA,QACvC;AAAA;AAAA,QAEA,OAAO,SAAgB;AACnB,gBAAM,QAAQ,gBAAgB,aAAa,OAAO,IAAI,WAAW,IAAmB;AACpF,qBAAW,gBAAgB,kBAAkB,WAAW,mBAAmB,KAAK;AAAA,QACpF;AAAA;AAAA,QAEA,YAAY;AACR,cAAI,CAAC,WAAW,SAAS,UAAW;AACpC,iBAAO,MAAM,sBAAsB,iBAAiB,YAAY;AAChE,cAAI;AACA,kBAAM,WAAW,YAAY,gBAAgB,YAAY,EAAE,kBAAkB,CAAC;AAAA,UAClF,SAAS,OAAO;AACZ,mBAAO;AAAA,cACH,cAAc,iBAAiB;AAAA,cAC/B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA;AAAA,QAEA,OAAO,SAAgB;AACnB,cAAI,WAAW,SAAS;AACpB,uBAAW,QAAQ,YAAY,IAAI;AACnC,oCAAwB,WAAW,SAAS,IAAI;AAAA,UACpD;AAAA,QACJ;AAAA,QACA;AAAA,MACJ;AACA,iBAAW,UAAU;AAErB,iBAAW,WAAW,aAAa;AAC/B,qBAAa,OAAO;AAAA,MACxB;AACA,kBAAY,SAAS;AAGrB,YAAM,gBAAgB,CAAC,OAAe,SAAkC;AACpE,YACI,UAAU,cAAc,gBACxB,OAAO,KAAK,sBAAsB,YAClC,KAAK,sBAAsB,mBAC7B;AACE,iBAAO,KAAK,cAAc,iBAAiB,4BAA4B;AACvE,qBAAW,SAAS,iBAAiB;AACrC,qBAAW,SACL,MAAM,EACP,MAAM,WAAS,OAAO,MAAM,cAAc,iBAAiB,2BAA2B,KAAK,CAAC;AAAA,QACrG;AAAA,MACJ;AACA,iBAAW,cAAc,GAAG,aAAa;AAGzC,YAAM,sBAAsB,MAAM;AAC9B,eAAO,KAAK,2BAA2B,iBAAiB,eAAe;AACvE,mBAAW,SAAS,iBAAiB;AACrC,mBAAW,SACL,MAAM,EACP,MAAM,WAAS,OAAO,MAAM,cAAc,iBAAiB,2BAA2B,KAAK,CAAC;AAAA,MACrG;AACA,iBAAW,OAAO,GAAG,mBAAmB;AAExC,wBAAkB,MAAM;AACpB,mBAAW,oBAAoB,IAAI,cAAc;AACjD,mBAAW,cAAc,IAAI,aAAa;AAC1C,mBAAW,OAAO,IAAI,mBAAmB;AAAA,MAC7C;AAEA,YAAM,eAAe,IAAI,gBAAgB,mBAAmB,YAAY,eAAe;AACvF,iBAAW,UAAU;AACrB,aAAO;AAAA,IACX,SAAS,OAAO;AAEZ,wBAAkB;AAClB,UAAI;AACA,cAAM,WAAW,YAAY,gBAAgB,YAAY,EAAE,kBAAkB,CAAC;AAAA,MAClF,SAAS,cAAc;AACnB,eAAO,MAAM,cAAc,iBAAiB,0CAA0C,YAAY;AAAA,MACtG;AACA,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,OAAO,UAA6E;AAChF,SAAK,2BAA2B;AAChC,WAAO;AAAA,MACH,OAAO,YAAY,MAAM,KAAK,MAAM;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,SAAS,MAAmB,UAAmB;AAC3C,WAAO,SAAS,YAAY;AAAA,EAChC;AACJ;AAMO,MAAM,wBAAwB,WAAkB;AAAA,EACnD,aAAa;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB,oBAAI,IAAgB;AAAA,EAC/C,iBAAiB,IAAI,MAAa;AAAA,EAClC;AAAA,EACA,gBAAgB;AAAA,EAEhB,YAAY,mBAA2B,YAA+B,kBAA8B;AAChG,UAAM;AACN,SAAK,qBAAqB;AAC1B,SAAK,cAAc;AACnB,SAAK,oBAAoB;AACzB,SAAK,sBAAsB,MAAM,KAAK,WAAW;AACjD,eAAW,OAAO,GAAG,KAAK,mBAAmB;AAAA,EACjD;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,mBAAmB;AACf,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,YAAY,MAAmB;AAC3B,QAAI,KAAK,iBAAiB;AACtB,YAAM,UAAU,KAAK;AACrB,WAAK,kBAAkB;AACvB,cAAQ,EAAE,OAAO,MAAM,MAAM,MAAM,CAAC;AAAA,IACxC,WAAW,CAAC,KAAK,eAAe;AAC5B,WAAK,eAAe,KAAK,IAAI;AAAA,IACjC;AAAA,EACJ;AAAA,EAEA,QAAQ,UAA0C;AAC9C,SAAK,gBAAgB,IAAI,QAAQ;AACjC,WAAO;AAAA,MACH,OAAO,YAAY;AACf,aAAK,gBAAgB,OAAO,QAAQ;AAAA,MACxC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,CAAC,OAAO,aAAa,IAA0B;AAC3C,WAAO;AAAA,MACH,MAAM,MAAM;AACR,YAAI,KAAK,eAAe,SAAS,GAAG;AAChC,iBAAO,QAAQ,QAAQ,EAAE,OAAO,KAAK,eAAe,MAAM,GAAI,MAAM,MAAM,CAAC;AAAA,QAC/E;AACA,YAAI,KAAK,iBAAiB,CAAC,KAAK,YAAY;AACxC,iBAAO,QAAQ,QAAQ,EAAE,OAAO,QAA+B,MAAM,KAAK,CAAC;AAAA,QAC/E;AACA,eAAO,IAAI,QAA+B,aAAW;AACjD,eAAK,kBAAkB;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,qBAA2B;AACvB,QAAI,CAAC,KAAK,eAAe;AACrB,WAAK,gBAAgB;AACrB,WAAK,kBAAkB,EAAE,OAAO,QAAW,MAAM,KAAK,CAAC;AACvD,WAAK,kBAAkB;AAAA,IAC3B;AAAA,EACJ;AAAA,EAEA,MAAM,KAAK,MAAa;AACpB,QAAI,CAAC,KAAK,YAAY;AAClB,aAAO,MAAM,uCAAuC,KAAK,kBAAkB,EAAE;AAC7E;AAAA,IACJ;AACA,QAAI,KAAK,gBAAgB,QAAW;AAChC,YAAM,IAAI,aAAa,8CAA8C;AAAA,IACzE;AACA,UAAM,KAAK,YAAY,kBAAkB,IAAI;AAAA,EACjD;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,eAAe,KAAK,kBAAkB;AAAA,EACjD;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,aAAa;AAClB,SAAK,kBAAkB;AACvB,SAAK,mBAAmB;AACxB,eAAW,YAAY,KAAK,iBAAiB;AACzC,eAAS;AAAA,IACb;AACA,SAAK,YAAY,OAAO,IAAI,KAAK,mBAAmB;AACpD,UAAM,KAAK,YAAY,MAAM;AAC7B,SAAK,WAAW;AAAA,EACpB;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,9 +3,71 @@
3
3
  * Copyright 2025-2026 Open Home Foundation
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { type BleProxyCommandName } from "../BleProxyProtocol.js";
7
+ /**
8
+ * The part of noble this client drives. Structural so a test can supply a stand-in without
9
+ * implementing the full `Noble` surface; the real instance satisfies it.
10
+ */
11
+ export interface NobleApi {
12
+ startScanningAsync(serviceUuids: string[], allowDuplicates: boolean): Promise<void>;
13
+ stopScanningAsync(): Promise<void>;
14
+ stop(): void;
15
+ on(event: "warning" | "stateChange", listener: (value: string) => void): unknown;
16
+ on(event: "discover", listener: (peripheral: Peripheral) => void): unknown;
17
+ removeAllListeners(event: "discover"): unknown;
18
+ }
19
+ /**
20
+ * The parts of noble's GATT objects this client drives. Structural for the same reason as
21
+ * `NobleApi`: a test can supply stand-ins, and noble's own types satisfy these on assignment.
22
+ */
23
+ export interface Characteristic {
24
+ readonly uuid: string;
25
+ readonly properties: string[];
26
+ readAsync(): Promise<Buffer>;
27
+ writeAsync(data: Buffer, withoutResponse: boolean): Promise<void>;
28
+ subscribeAsync(): Promise<void>;
29
+ unsubscribeAsync(): Promise<void>;
30
+ on(event: "data", listener: NotificationListener): unknown;
31
+ removeListener(event: "data", listener: NotificationListener): unknown;
32
+ }
33
+ export interface Service {
34
+ readonly uuid: string;
35
+ readonly characteristics?: Characteristic[];
36
+ discoverCharacteristicsAsync(uuids?: string[]): Promise<Characteristic[]>;
37
+ }
38
+ export interface Peripheral {
39
+ readonly id: string;
40
+ readonly address: string;
41
+ readonly rssi: number;
42
+ readonly mtu?: number | null;
43
+ readonly state: string;
44
+ readonly connectable?: boolean;
45
+ readonly advertisement: {
46
+ localName?: string;
47
+ serviceUuids?: string[];
48
+ serviceData?: Array<{
49
+ uuid: string;
50
+ data: Uint8Array;
51
+ }>;
52
+ };
53
+ connectAsync(): Promise<void>;
54
+ disconnectAsync(): Promise<void>;
55
+ discoverServicesAsync(serviceUuids: string[]): Promise<Service[]>;
56
+ once(event: "disconnect", listener: () => void): unknown;
57
+ removeListener(event: "disconnect", listener: () => void): unknown;
58
+ }
59
+ /** noble reuses the "data" event for read responses, and delivers a null payload on read failure. */
60
+ export type NotificationListener = (payload: Buffer | null) => void;
61
+ export interface NobleBleProxyClientOptions {
62
+ /** Stand-in for the dynamically imported noble instance. */
63
+ noble?: NobleApi;
64
+ scanOperationTimeoutMs?: number;
65
+ }
6
66
  export declare class NobleBleProxyClient {
7
67
  #private;
8
- constructor(serverUrl: string, hciId?: number);
68
+ constructor(serverUrl: string, hciId?: number, options?: NobleBleProxyClientOptions);
69
+ /** Command names this client implements. Must cover every `BleProxyCommand` value. */
70
+ get supportedCommands(): BleProxyCommandName[];
9
71
  connect(): Promise<void>;
10
72
  close(): void;
11
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NobleBleProxyClient.d.ts","sourceRoot":"","sources":["../../../src/example/NobleBleProxyClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6EH,qBAAa,mBAAmB;;IAY5B,YAAY,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAI5C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAsE7B;IAED,KAAK,IAAI,IAAI,CAeZ;CA4eJ"}
1
+ {"version":3,"file":"NobleBleProxyClient.d.ts","sourceRoot":"","sources":["../../../src/example/NobleBleProxyClient.ts"],"names":[],"mappings":"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"}