@dg-kit/protocol 1.6.0 → 1.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"civet-edging.d.ts","sourceRoot":"","sources":["../src/civet-edging.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAe1F;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,KAAK,eAAe,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAC/D,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,yBAAyB,CAAC,oBAAoB,CAAC;IAChG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAE3D,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,UAAU,CAAsD;IACxE,mIAAmI;IACnI,OAAO,CAAC,SAAS,CAAS;IAEpB,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAwClE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBrC,QAAQ,IAAI,WAAW;IAIvB,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAOhD,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;IAOnD,gFAAgF;IAC1E,sBAAsB,CAAC,KAAK,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,+EAA+E;IACzE,qBAAqB,CAAC,KAAK,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;;;;;;;OAQG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,8EAA8E;IACxE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,gEAAgE;IAC1D,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,OAAO,CAAC,4BAA4B;YAStB,KAAK;IAOnB,OAAO,CAAC,SAAS;IAOjB,QAAQ,CAAC,kBAAkB,GAAI,OAAO,KAAK,KAAG,IAAI,CAWhD;CACH"}
1
+ {"version":3,"file":"civet-edging.d.ts","sourceRoot":"","sources":["../src/civet-edging.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAS1F;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,KAAK,eAAe,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAC/D,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,yBAAyB,CAAC,oBAAoB,CAAC;IAChG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAE3D,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,UAAU,CAAsD;IACxE,mIAAmI;IACnI,OAAO,CAAC,SAAS,CAAS;IAEpB,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BlE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC,QAAQ,IAAI,WAAW;IAIvB,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAOhD,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;IAOnD,gFAAgF;IAC1E,sBAAsB,CAAC,KAAK,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,+EAA+E;IACzE,qBAAqB,CAAC,KAAK,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;;;;;;;OAQG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,8EAA8E;IACxE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,gEAAgE;IAC1D,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,OAAO,CAAC,4BAA4B;YAStB,KAAK;IAOnB,OAAO,CAAC,SAAS;IAOjB,QAAQ,CAAC,kBAAkB,GAAI,OAAO,KAAK,KAAG,IAAI,CAWhD;CACH"}
@@ -1,6 +1,5 @@
1
1
  import { createEmptySensorState } from '@dg-kit/core';
2
- import { V3_BATTERY_CHAR, V3_BATTERY_SERVICE, V3_NOTIFY_CHAR, V3_PRIMARY_SERVICE, V3_WRITE_CHAR, } from './constants.js';
3
- import { clampIndicatorColor, performV3FamilyConnectHandshake, writeCharacteristicValue, } from './gatt-utils.js';
2
+ import { clampIndicatorColor, connectSensorGatt, disconnectSensorGatt, writeCharacteristicValue, } from './gatt-utils.js';
4
3
  /**
5
4
  * Web Bluetooth adapter for the Civet Edging Sensor.
6
5
  *
@@ -18,27 +17,14 @@ export class CivetPressureSensorAdapter {
18
17
  streaming = false;
19
18
  async onConnected(context) {
20
19
  try {
21
- const primaryService = await context.server.getPrimaryService(V3_PRIMARY_SERVICE);
22
- this.writeChar = await primaryService.getCharacteristic(V3_WRITE_CHAR);
23
- this.notifyChar = await primaryService.getCharacteristic(V3_NOTIFY_CHAR);
24
- await this.notifyChar.startNotifications();
25
- this.notifyChar.addEventListener('characteristicvaluechanged', this.handleNotification);
26
- await performV3FamilyConnectHandshake(context.server, this.writeChar);
27
- let battery = 0;
28
- try {
29
- const batteryService = await context.server.getPrimaryService(V3_BATTERY_SERVICE);
30
- const batteryChar = await batteryService.getCharacteristic(V3_BATTERY_CHAR);
31
- const value = await batteryChar.readValue();
32
- battery = value.getUint8(0);
33
- }
34
- catch {
35
- battery = 0;
36
- }
20
+ const connection = await connectSensorGatt(context, this.handleNotification);
21
+ this.writeChar = connection.writeChar;
22
+ this.notifyChar = connection.notifyChar;
37
23
  this.state = {
38
24
  connected: true,
39
- deviceName: context.device.name ?? '',
40
- address: context.device.id ?? '',
41
- battery,
25
+ deviceName: connection.deviceName,
26
+ address: connection.address,
27
+ battery: connection.battery,
42
28
  };
43
29
  this.emitState();
44
30
  // Auto-start streaming right after connecting so the adapter is
@@ -54,15 +40,7 @@ export class CivetPressureSensorAdapter {
54
40
  }
55
41
  }
56
42
  async onDisconnected() {
57
- if (this.notifyChar) {
58
- this.notifyChar.removeEventListener('characteristicvaluechanged', this.handleNotification);
59
- try {
60
- await this.notifyChar.stopNotifications();
61
- }
62
- catch {
63
- // best-effort: device may already be gone.
64
- }
65
- }
43
+ await disconnectSensorGatt(this.notifyChar, this.handleNotification);
66
44
  this.writeChar = null;
67
45
  this.notifyChar = null;
68
46
  this.streaming = false;
@@ -1 +1 @@
1
- {"version":3,"file":"civet-edging.js","sourceRoot":"","sources":["../src/civet-edging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"civet-edging.js","sourceRoot":"","sources":["../src/civet-edging.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { WebBluetoothConnectionContext } from './base.js';
1
2
  import type { BluetoothRemoteGATTCharacteristicLike, BluetoothRemoteGATTServerLike } from './types.js';
2
3
  /**
3
4
  * Shared GATT write with a fallback chain across the three write methods a
@@ -39,4 +40,31 @@ export declare function performV3FamilyConnectHandshake(server: BluetoothRemoteG
39
40
  * color picker would otherwise reach the wire unclamped).
40
41
  */
41
42
  export declare function clampIndicatorColor(color: number): number;
43
+ export interface SensorGattConnection {
44
+ writeChar: BluetoothRemoteGATTCharacteristicLike;
45
+ notifyChar: BluetoothRemoteGATTCharacteristicLike;
46
+ deviceName: string;
47
+ address: string;
48
+ battery: number;
49
+ }
50
+ /**
51
+ * Shared connect sequence for the sensor-family adapters (paw-prints,
52
+ * civet-edging): open the shared 0x180C write/notify characteristics, wire
53
+ * the notification listener, run the V3-family handshake, then a
54
+ * best-effort battery read. Both adapters had this exact sequence
55
+ * byte-for-byte duplicated before this was extracted — kept as a plain
56
+ * function (not a base class) so each adapter's own `onConnected` keeps
57
+ * full control over how/when it constructs and emits its `SensorState`,
58
+ * which differs subtly between them (e.g. paw-prints resets stale chars
59
+ * before a fresh attempt; civet-edging auto-starts pressure streaming right
60
+ * after) and shouldn't be forced into a shared shape.
61
+ */
62
+ export declare function connectSensorGatt(context: WebBluetoothConnectionContext, onNotification: (event: Event) => void): Promise<SensorGattConnection>;
63
+ /**
64
+ * Shared teardown counterpart to `connectSensorGatt` — removes the
65
+ * notification listener and best-effort stops notifications. Safe to call
66
+ * with `notifyChar: null` (e.g. disconnecting before a connection attempt
67
+ * ever got this far).
68
+ */
69
+ export declare function disconnectSensorGatt(notifyChar: BluetoothRemoteGATTCharacteristicLike | null, onNotification: (event: Event) => void): Promise<void>;
42
70
  //# sourceMappingURL=gatt-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gatt-utils.d.ts","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qCAAqC,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEvG;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,qCAAqC,EACrD,KAAK,EAAE,eAAe,GAAG,WAAW,EACpC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,6BAA6B,EACrC,SAAS,EAAE,qCAAqC,GAC/C,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD"}
1
+ {"version":3,"file":"gatt-utils.d.ts","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAc/D,OAAO,KAAK,EAAE,qCAAqC,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEvG;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,qCAAqC,EACrD,KAAK,EAAE,eAAe,GAAG,WAAW,EACpC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,6BAA6B,EACrC,SAAS,EAAE,qCAAqC,GAC/C,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,qCAAqC,CAAC;IACjD,UAAU,EAAE,qCAAqC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,6BAA6B,EACtC,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GACrC,OAAO,CAAC,oBAAoB,CAAC,CA4B/B;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qCAAqC,GAAG,IAAI,EACxD,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GACrC,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -1,4 +1,4 @@
1
- import { V3_HANDSHAKE_MTU, V3_INIT_PACKET, V3_LEGACY_NOTIFY_CHAR, V3_LEGACY_SERVICE, V3_NORDIC_OTA_CHAR, V3_NORDIC_OTA_SERVICE, } from './constants.js';
1
+ import { V3_BATTERY_CHAR, V3_BATTERY_SERVICE, V3_HANDSHAKE_MTU, V3_INIT_PACKET, V3_LEGACY_NOTIFY_CHAR, V3_LEGACY_SERVICE, V3_NORDIC_OTA_CHAR, V3_NORDIC_OTA_SERVICE, V3_NOTIFY_CHAR, V3_PRIMARY_SERVICE, V3_WRITE_CHAR, } from './constants.js';
2
2
  /**
3
3
  * Shared GATT write with a fallback chain across the three write methods a
4
4
  * characteristic might expose. Standalone (not a class method) so every
@@ -96,4 +96,60 @@ export function clampIndicatorColor(color) {
96
96
  return 0;
97
97
  return Math.max(0, Math.min(7, Math.round(value)));
98
98
  }
99
+ /**
100
+ * Shared connect sequence for the sensor-family adapters (paw-prints,
101
+ * civet-edging): open the shared 0x180C write/notify characteristics, wire
102
+ * the notification listener, run the V3-family handshake, then a
103
+ * best-effort battery read. Both adapters had this exact sequence
104
+ * byte-for-byte duplicated before this was extracted — kept as a plain
105
+ * function (not a base class) so each adapter's own `onConnected` keeps
106
+ * full control over how/when it constructs and emits its `SensorState`,
107
+ * which differs subtly between them (e.g. paw-prints resets stale chars
108
+ * before a fresh attempt; civet-edging auto-starts pressure streaming right
109
+ * after) and shouldn't be forced into a shared shape.
110
+ */
111
+ export async function connectSensorGatt(context, onNotification) {
112
+ const primaryService = await context.server.getPrimaryService(V3_PRIMARY_SERVICE);
113
+ const writeChar = await primaryService.getCharacteristic(V3_WRITE_CHAR);
114
+ const notifyChar = await primaryService.getCharacteristic(V3_NOTIFY_CHAR);
115
+ await notifyChar.startNotifications();
116
+ notifyChar.addEventListener('characteristicvaluechanged', onNotification);
117
+ await performV3FamilyConnectHandshake(context.server, writeChar);
118
+ let battery = 0;
119
+ try {
120
+ const batteryService = await context.server.getPrimaryService(V3_BATTERY_SERVICE);
121
+ const batteryChar = await batteryService.getCharacteristic(V3_BATTERY_CHAR);
122
+ const value = await batteryChar.readValue();
123
+ battery = value.getUint8(0);
124
+ }
125
+ catch {
126
+ // Best-effort — some firmware/pairing states expose the service but
127
+ // reject the read; a failure here shouldn't fail the whole connection.
128
+ // `battery` already defaults to 0 above.
129
+ }
130
+ return {
131
+ writeChar,
132
+ notifyChar,
133
+ deviceName: context.device.name ?? '',
134
+ address: context.device.id ?? '',
135
+ battery,
136
+ };
137
+ }
138
+ /**
139
+ * Shared teardown counterpart to `connectSensorGatt` — removes the
140
+ * notification listener and best-effort stops notifications. Safe to call
141
+ * with `notifyChar: null` (e.g. disconnecting before a connection attempt
142
+ * ever got this far).
143
+ */
144
+ export async function disconnectSensorGatt(notifyChar, onNotification) {
145
+ if (!notifyChar)
146
+ return;
147
+ notifyChar.removeEventListener('characteristicvaluechanged', onNotification);
148
+ try {
149
+ await notifyChar.stopNotifications();
150
+ }
151
+ catch {
152
+ // best-effort: device may already be gone.
153
+ }
154
+ }
99
155
  //# sourceMappingURL=gatt-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gatt-utils.js","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,cAAqD,EACrD,KAAoC,EACpC,UAAwC,EAAE;IAE1C,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc;QACrC,CAAC,CAAC;YACE,cAAc,CAAC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC;YAC3D,cAAc,CAAC,yBAAyB,EAAE,IAAI,CAAC,cAAc,CAAC;YAC9D,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;SAChD;QACH,CAAC,CAAC;YACE,cAAc,CAAC,yBAAyB,EAAE,IAAI,CAAC,cAAc,CAAC;YAC9D,cAAc,CAAC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC;YAC3D,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;SAChD,CAAC;IAEN,IAAI,SAAS,GAAY,IAAI,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,MAAqC,EACrC,SAAgD;IAEhD,IAAI,CAAC;QACH,MAAM,wBAAwB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QAChF,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACvE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"gatt-utils.js","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,6 @@ export declare class PawPrintsSensorAdapter implements WebBluetoothSensorAdapter
51
51
  private state;
52
52
  private writeChar;
53
53
  private notifyChar;
54
- private batteryChar;
55
54
  private readonly readingListeners;
56
55
  private readonly stateListeners;
57
56
  onConnected(context: WebBluetoothConnectionContext): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"paw-prints.d.ts","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAQxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAQ1F,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAiBlE,qBAAa,sBAAuB,YAAW,yBAAyB,CAAC,gBAAgB,CAAC;IACxF,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,UAAU,CAAsD;IACxE,OAAO,CAAC,WAAW,CAAsD;IAEzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAE9D,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsClE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,QAAQ,IAAI,WAAW;IAIvB,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAOzD,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI;IAO5D;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAWjE,eAAe;IA2B7B,OAAO,CAAC,SAAS;YAOH,YAAY;IAO1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAWjC;IAEF,OAAO,CAAC,YAAY;CA8ErB"}
1
+ {"version":3,"file":"paw-prints.d.ts","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAS1F,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAiBlE,qBAAa,sBAAuB,YAAW,yBAAyB,CAAC,gBAAgB,CAAC;IACxF,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,UAAU,CAAsD;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAE9D,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BlE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,QAAQ,IAAI,WAAW;IAIvB,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAOzD,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI;IAO5D;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAWjE,eAAe;IAmB7B,OAAO,CAAC,SAAS;YAOH,YAAY;IAO1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAWjC;IAEF,OAAO,CAAC,YAAY;CA8ErB"}
@@ -13,8 +13,7 @@
13
13
  * authoritative.
14
14
  */
15
15
  import { createEmptySensorState } from '@dg-kit/core';
16
- import { V3_BATTERY_CHAR, V3_BATTERY_SERVICE, V3_NOTIFY_CHAR, V3_PRIMARY_SERVICE, V3_WRITE_CHAR, } from './constants.js';
17
- import { clampIndicatorColor, performV3FamilyConnectHandshake, writeCharacteristicValue, } from './gatt-utils.js';
16
+ import { clampIndicatorColor, connectSensorGatt, disconnectSensorGatt, writeCharacteristicValue, } from './gatt-utils.js';
18
17
  // Outbound command opcodes.
19
18
  const CMD_CONFIGURE_TRIGGER = 0x50;
20
19
  const CMD_RESET_PARAMETERS = 0x5f;
@@ -32,36 +31,30 @@ export class PawPrintsSensorAdapter {
32
31
  state = createEmptySensorState();
33
32
  writeChar = null;
34
33
  notifyChar = null;
35
- batteryChar = null;
36
34
  readingListeners = new Set();
37
35
  stateListeners = new Set();
38
36
  async onConnected(context) {
39
37
  await this.resetConnection(false);
38
+ // Set the attempted device's name/address optimistically, before GATT
39
+ // connect even starts — if connectSensorGatt() below throws partway
40
+ // through, resetConnection() still has a name/address to preserve, so a
41
+ // failed attempt is distinguishable from "never tried" rather than
42
+ // silently reverting to blank.
43
+ this.state = {
44
+ ...createEmptySensorState(),
45
+ deviceName: context.device.name ?? '',
46
+ address: context.device.id ?? '',
47
+ };
40
48
  try {
49
+ const connection = await connectSensorGatt(context, this.handleNotification);
50
+ this.writeChar = connection.writeChar;
51
+ this.notifyChar = connection.notifyChar;
41
52
  this.state = {
42
- ...createEmptySensorState(),
43
53
  connected: true,
44
- deviceName: context.device.name ?? '',
45
- address: context.device.id ?? '',
54
+ deviceName: connection.deviceName,
55
+ address: connection.address,
56
+ battery: connection.battery,
46
57
  };
47
- const primaryService = await context.server.getPrimaryService(V3_PRIMARY_SERVICE);
48
- this.writeChar = await primaryService.getCharacteristic(V3_WRITE_CHAR);
49
- this.notifyChar = await primaryService.getCharacteristic(V3_NOTIFY_CHAR);
50
- await this.notifyChar.startNotifications();
51
- this.notifyChar.addEventListener('characteristicvaluechanged', this.handleNotification);
52
- await performV3FamilyConnectHandshake(context.server, this.writeChar);
53
- // Battery read is best-effort: some firmware/pairing states expose the
54
- // service but reject the read, so a failure here shouldn't fail the
55
- // whole connection.
56
- try {
57
- const batteryService = await context.server.getPrimaryService(V3_BATTERY_SERVICE);
58
- this.batteryChar = await batteryService.getCharacteristic(V3_BATTERY_CHAR);
59
- const value = await this.batteryChar.readValue();
60
- this.state = { ...this.state, battery: value.getUint8(0) };
61
- }
62
- catch {
63
- this.state = { ...this.state, battery: 0 };
64
- }
65
58
  this.emitState();
66
59
  }
67
60
  catch (error) {
@@ -115,18 +108,9 @@ export class PawPrintsSensorAdapter {
115
108
  await this.writeCommand(Uint8Array.of(CMD_LED_CONTROL, clampIndicatorColor(color1), clampIndicatorColor(color2), speed));
116
109
  }
117
110
  async resetConnection(emit) {
118
- if (this.notifyChar) {
119
- this.notifyChar.removeEventListener('characteristicvaluechanged', this.handleNotification);
120
- try {
121
- await this.notifyChar.stopNotifications();
122
- }
123
- catch {
124
- // best effort — device may already be gone
125
- }
126
- }
111
+ await disconnectSensorGatt(this.notifyChar, this.handleNotification);
127
112
  this.writeChar = null;
128
113
  this.notifyChar = null;
129
- this.batteryChar = null;
130
114
  const previousDeviceName = this.state.deviceName;
131
115
  const previousAddress = this.state.address;
132
116
  this.state = {
@@ -1 +1 @@
1
- {"version":3,"file":"paw-prints.js","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paw-prints.js","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,sBAAsB,EAAoB,MAAM,cAAc,CAAC;AAExE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AA4BzB,4BAA4B;AAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,gCAAgC;AAChC,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAM,OAAO,sBAAsB;IACzB,KAAK,GAAgB,sBAAsB,EAAE,CAAC;IAC9C,SAAS,GAAiD,IAAI,CAAC;IAC/D,UAAU,GAAiD,IAAI,CAAC;IAEvD,gBAAgB,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvD,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEpE,KAAK,CAAC,WAAW,CAAC,OAAsC;QACtD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAElC,sEAAsE;QACtE,oEAAoE;QACpE,wEAAwE;QACxE,mEAAmE;QACnE,+BAA+B;QAC/B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,sBAAsB,EAAE;YAC3B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;YACrC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;SACjC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7E,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG;gBACX,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,QAAkC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,QAAgC;QAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,MAAmB;QACrE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAClB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC7D,MAAM,IAAI,CAAC,YAAY,CACrB,UAAU,CAAC,EAAE,CACX,eAAe,EACf,mBAAmB,CAAC,MAAM,CAAC,EAC3B,mBAAmB,CAAC,MAAM,CAAC,EAC3B,KAAK,CACN,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAa;QACzC,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAErE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACjD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,sBAAsB,EAAE;YAC3B,UAAU,EAAE,kBAAkB;YAC9B,OAAO,EAAE,eAAe;SACzB,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAiB;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAEgB,kBAAkB,GAAG,CAAC,KAAY,EAAQ,EAAE;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAsD,CAAC;QAC5E,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;YAAE,OAAO;QAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEM,YAAY,CAAC,KAAe;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEjC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACtC,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACxB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC7B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAC3B,CAAC;YACJ,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACtC,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC1B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAClC,CAAC;YACJ,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACtC,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAC3B,CAAC;YACJ,CAAC;YAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACtC,OAAO;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC1B,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACzB,CAAC;YACJ,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACtC,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC3B,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC7B,gEAAgE;oBAChE,kEAAkE;oBAClE,kEAAkE;oBAClE,6DAA6D;oBAC7D,4CAA4C;oBAC5C,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC/B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAC9B,CAAC;YACJ,CAAC;YAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC/B,oEAAoE;gBACpE,qEAAqE;gBACrE,mEAAmE;gBACnE,mEAAmE;gBACnE,oEAAoE;gBACpE,IAAI,KAAK,CAAC,UAAU,GAAG,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,yBAAyB;oBAAE,OAAO,IAAI,CAAC;gBAC1F,OAAO;oBACL,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC1D,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC1D,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;iBAC7D,CAAC;YACJ,CAAC;YAED;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dg-kit/protocol",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "DG-Lab Coyote V2 / V3 BLE protocol adapters (transport-agnostic)",
5
5
  "license": "MIT",
6
6
  "author": "0xNullAI",
@@ -27,7 +27,7 @@
27
27
  "access": "public"
28
28
  },
29
29
  "dependencies": {
30
- "@dg-kit/core": "1.6.0"
30
+ "@dg-kit/core": "1.7.0"
31
31
  },
32
32
  "scripts": {
33
33
  "build": "tsc -p tsconfig.json",