ultimatedarktower 3.0.0 → 4.0.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +28 -15
  3. package/dist/esm/index.mjs +1039 -45
  4. package/dist/src/UltimateDarkTower.d.ts +42 -0
  5. package/dist/src/UltimateDarkTower.js +102 -2
  6. package/dist/src/UltimateDarkTower.js.map +1 -1
  7. package/dist/src/adapters/NodeBluetoothAdapter.js +9 -5
  8. package/dist/src/adapters/NodeBluetoothAdapter.js.map +1 -1
  9. package/dist/src/adapters/WebBluetoothAdapter.js +11 -8
  10. package/dist/src/adapters/WebBluetoothAdapter.js.map +1 -1
  11. package/dist/src/index.d.ts +8 -0
  12. package/dist/src/index.js +34 -1
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/sinks/IndexedDBSink.d.ts +26 -0
  15. package/dist/src/sinks/IndexedDBSink.js +165 -0
  16. package/dist/src/sinks/IndexedDBSink.js.map +1 -0
  17. package/dist/src/udtBleConnection.d.ts +24 -1
  18. package/dist/src/udtBleConnection.js +68 -2
  19. package/dist/src/udtBleConnection.js.map +1 -1
  20. package/dist/src/udtBluetoothAdapter.d.ts +6 -6
  21. package/dist/src/udtBluetoothAdapter.js.map +1 -1
  22. package/dist/src/udtCommandQueue.d.ts +4 -1
  23. package/dist/src/udtCommandQueue.js +26 -2
  24. package/dist/src/udtCommandQueue.js.map +1 -1
  25. package/dist/src/udtConstants.d.ts +2 -0
  26. package/dist/src/udtConstants.js +2 -0
  27. package/dist/src/udtConstants.js.map +1 -1
  28. package/dist/src/udtDiagnostics.d.ts +122 -0
  29. package/dist/src/udtDiagnostics.js +228 -0
  30. package/dist/src/udtDiagnostics.js.map +1 -0
  31. package/dist/src/udtGameBoard.d.ts +38 -0
  32. package/dist/src/udtGameBoard.js +86 -0
  33. package/dist/src/udtGameBoard.js.map +1 -0
  34. package/dist/src/udtLogger.d.ts +15 -0
  35. package/dist/src/udtLogger.js +17 -0
  36. package/dist/src/udtLogger.js.map +1 -1
  37. package/dist/src/udtSeedParser.d.ts +124 -0
  38. package/dist/src/udtSeedParser.js +369 -0
  39. package/dist/src/udtSeedParser.js.map +1 -0
  40. package/dist/src/udtSystemRandom.d.ts +58 -0
  41. package/dist/src/udtSystemRandom.js +154 -0
  42. package/dist/src/udtSystemRandom.js.map +1 -0
  43. package/dist/src/udtTowerCommands.d.ts +2 -0
  44. package/dist/src/udtTowerCommands.js +7 -29
  45. package/dist/src/udtTowerCommands.js.map +1 -1
  46. package/package.json +5 -1
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Browser-only durable sink. Persists incidents to IndexedDB so they survive
3
+ * page refresh and tab close.
4
+ *
5
+ * Quota policy: keeps at most `maxIncidents` (default 50). Oldest by
6
+ * triggeredAt are evicted. Reads are async via list() / get().
7
+ *
8
+ * Falls back to a no-op if IndexedDB is unavailable (server-side rendering,
9
+ * old browsers, file:// protocol with restrictive policies, etc.).
10
+ */
11
+ import type { DiagnosticsSink, IncidentReport } from '../udtDiagnostics';
12
+ export declare class IndexedDBSink implements DiagnosticsSink {
13
+ private maxIncidents;
14
+ private dbPromise;
15
+ private available;
16
+ constructor(maxIncidents?: number);
17
+ private getDb;
18
+ onIncident(report: IncidentReport): Promise<void>;
19
+ list(): Promise<IncidentReport[]>;
20
+ get(incidentId: string): Promise<IncidentReport | undefined>;
21
+ delete(incidentId: string): Promise<void>;
22
+ clear(): Promise<void>;
23
+ /** Insert an externally-supplied report (e.g. from a JSON import). */
24
+ put(report: IncidentReport): Promise<void>;
25
+ private evictOld;
26
+ }
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ /**
3
+ * Browser-only durable sink. Persists incidents to IndexedDB so they survive
4
+ * page refresh and tab close.
5
+ *
6
+ * Quota policy: keeps at most `maxIncidents` (default 50). Oldest by
7
+ * triggeredAt are evicted. Reads are async via list() / get().
8
+ *
9
+ * Falls back to a no-op if IndexedDB is unavailable (server-side rendering,
10
+ * old browsers, file:// protocol with restrictive policies, etc.).
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.IndexedDBSink = void 0;
14
+ const DB_NAME = 'udt-diagnostics';
15
+ const DB_VERSION = 1;
16
+ const STORE_NAME = 'incidents';
17
+ function indexedDBAvailable() {
18
+ try {
19
+ return typeof indexedDB !== 'undefined';
20
+ }
21
+ catch (_a) {
22
+ return false;
23
+ }
24
+ }
25
+ function openDb() {
26
+ return new Promise((resolve, reject) => {
27
+ const req = indexedDB.open(DB_NAME, DB_VERSION);
28
+ req.onupgradeneeded = () => {
29
+ const db = req.result;
30
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
31
+ const store = db.createObjectStore(STORE_NAME, { keyPath: 'incidentId' });
32
+ store.createIndex('triggeredAt', 'triggeredAt', { unique: false });
33
+ }
34
+ };
35
+ req.onsuccess = () => resolve(req.result);
36
+ req.onerror = () => reject(req.error);
37
+ });
38
+ }
39
+ class IndexedDBSink {
40
+ constructor(maxIncidents = 50) {
41
+ this.dbPromise = null;
42
+ this.maxIncidents = maxIncidents;
43
+ this.available = indexedDBAvailable();
44
+ }
45
+ async getDb() {
46
+ if (!this.available)
47
+ return null;
48
+ if (!this.dbPromise) {
49
+ this.dbPromise = openDb().catch(err => {
50
+ this.available = false;
51
+ this.dbPromise = null;
52
+ throw err;
53
+ });
54
+ }
55
+ try {
56
+ return await this.dbPromise;
57
+ }
58
+ catch (_a) {
59
+ return null;
60
+ }
61
+ }
62
+ async onIncident(report) {
63
+ const db = await this.getDb();
64
+ if (!db)
65
+ return;
66
+ await new Promise((resolve, reject) => {
67
+ const tx = db.transaction(STORE_NAME, 'readwrite');
68
+ const store = tx.objectStore(STORE_NAME);
69
+ store.put(report);
70
+ tx.oncomplete = () => resolve();
71
+ tx.onerror = () => reject(tx.error);
72
+ tx.onabort = () => reject(tx.error);
73
+ }).catch(e => console.error('IndexedDBSink put failed:', e));
74
+ await this.evictOld();
75
+ }
76
+ async list() {
77
+ const db = await this.getDb();
78
+ if (!db)
79
+ return [];
80
+ return new Promise((resolve, reject) => {
81
+ const tx = db.transaction(STORE_NAME, 'readonly');
82
+ const store = tx.objectStore(STORE_NAME);
83
+ const req = store.getAll();
84
+ req.onsuccess = () => {
85
+ const all = req.result.slice();
86
+ all.sort((a, b) => b.triggeredAt - a.triggeredAt);
87
+ resolve(all);
88
+ };
89
+ req.onerror = () => reject(req.error);
90
+ });
91
+ }
92
+ async get(incidentId) {
93
+ const db = await this.getDb();
94
+ if (!db)
95
+ return undefined;
96
+ return new Promise((resolve, reject) => {
97
+ const tx = db.transaction(STORE_NAME, 'readonly');
98
+ const store = tx.objectStore(STORE_NAME);
99
+ const req = store.get(incidentId);
100
+ req.onsuccess = () => resolve(req.result);
101
+ req.onerror = () => reject(req.error);
102
+ });
103
+ }
104
+ async delete(incidentId) {
105
+ const db = await this.getDb();
106
+ if (!db)
107
+ return;
108
+ await new Promise((resolve, reject) => {
109
+ const tx = db.transaction(STORE_NAME, 'readwrite');
110
+ tx.objectStore(STORE_NAME).delete(incidentId);
111
+ tx.oncomplete = () => resolve();
112
+ tx.onerror = () => reject(tx.error);
113
+ }).catch(e => console.error('IndexedDBSink delete failed:', e));
114
+ }
115
+ async clear() {
116
+ const db = await this.getDb();
117
+ if (!db)
118
+ return;
119
+ await new Promise((resolve, reject) => {
120
+ const tx = db.transaction(STORE_NAME, 'readwrite');
121
+ tx.objectStore(STORE_NAME).clear();
122
+ tx.oncomplete = () => resolve();
123
+ tx.onerror = () => reject(tx.error);
124
+ }).catch(e => console.error('IndexedDBSink clear failed:', e));
125
+ }
126
+ /** Insert an externally-supplied report (e.g. from a JSON import). */
127
+ async put(report) {
128
+ return this.onIncident(report);
129
+ }
130
+ async evictOld() {
131
+ const db = await this.getDb();
132
+ if (!db)
133
+ return;
134
+ await new Promise((resolve) => {
135
+ const tx = db.transaction(STORE_NAME, 'readwrite');
136
+ const store = tx.objectStore(STORE_NAME);
137
+ const countReq = store.count();
138
+ countReq.onsuccess = () => {
139
+ const total = countReq.result;
140
+ if (total <= this.maxIncidents) {
141
+ resolve();
142
+ return;
143
+ }
144
+ const toRemove = total - this.maxIncidents;
145
+ const idx = store.index('triggeredAt');
146
+ const cursorReq = idx.openCursor();
147
+ let removed = 0;
148
+ cursorReq.onsuccess = () => {
149
+ const cursor = cursorReq.result;
150
+ if (!cursor || removed >= toRemove) {
151
+ resolve();
152
+ return;
153
+ }
154
+ cursor.delete();
155
+ removed++;
156
+ cursor.continue();
157
+ };
158
+ cursorReq.onerror = () => resolve();
159
+ };
160
+ countReq.onerror = () => resolve();
161
+ });
162
+ }
163
+ }
164
+ exports.IndexedDBSink = IndexedDBSink;
165
+ //# sourceMappingURL=IndexedDBSink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBSink.js","sourceRoot":"","sources":["../../../src/sinks/IndexedDBSink.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Logger } from './udtLogger';
2
2
  import { type IBluetoothAdapter } from './udtBluetoothAdapter';
3
+ import type { UdtDiagnosticsRecorder, DisconnectCause, IncidentReport } from './udtDiagnostics';
3
4
  export interface TowerEventCallbacks {
4
5
  onTowerConnect: () => void;
5
6
  onTowerDisconnect: () => void;
@@ -36,6 +37,8 @@ export declare class UdtBleConnection {
36
37
  private logger;
37
38
  private callbacks;
38
39
  private responseProcessor;
40
+ private recorder;
41
+ private snapshotProviders;
39
42
  private bluetoothAdapter;
40
43
  isConnected: boolean;
41
44
  isDisposed: boolean;
@@ -71,7 +74,27 @@ export declare class UdtBleConnection {
71
74
  CALIBRATION_FINISHED: boolean;
72
75
  LOG_ALL: boolean;
73
76
  };
74
- constructor(logger: Logger, callbacks: TowerEventCallbacks, adapter?: IBluetoothAdapter);
77
+ constructor(logger: Logger, callbacks: TowerEventCallbacks, adapter?: IBluetoothAdapter, recorder?: UdtDiagnosticsRecorder);
78
+ setDiagnosticsSnapshotProviders(providers: {
79
+ commandQueue: () => {
80
+ queueLength: number;
81
+ isProcessing: boolean;
82
+ currentCommand: {
83
+ id: string;
84
+ description?: string;
85
+ timestamp: number;
86
+ } | null;
87
+ };
88
+ towerState: () => unknown;
89
+ brokenSeals: () => string[];
90
+ }): void;
91
+ /**
92
+ * Record a disconnect incident with the recorder. Public so higher layers
93
+ * (e.g. UltimateDarkTower's beforeunload handler) can synthesize causes
94
+ * like 'page_unload' that aren't tied to a specific BLE detection path.
95
+ */
96
+ recordIncidentPublic(cause: DisconnectCause): IncidentReport | null;
97
+ private recordIncident;
75
98
  connect(): Promise<void>;
76
99
  disconnect(): Promise<void>;
77
100
  /**
@@ -7,7 +7,12 @@ const udtHelpers_1 = require("./udtHelpers");
7
7
  const udtTowerState_1 = require("./udtTowerState");
8
8
  const udtBluetoothAdapterFactory_1 = require("./udtBluetoothAdapterFactory");
9
9
  class UdtBleConnection {
10
- constructor(logger, callbacks, adapter) {
10
+ constructor(logger, callbacks, adapter, recorder) {
11
+ this.recorder = null;
12
+ // Snapshot providers wired by UltimateDarkTower so the recorder can capture
13
+ // higher-level state (command queue, tower state, broken seals) at the
14
+ // moment a disconnect cause fires.
15
+ this.snapshotProviders = null;
11
16
  // Connection state
12
17
  this.isConnected = false;
13
18
  this.isDisposed = false;
@@ -51,6 +56,7 @@ class UdtBleConnection {
51
56
  this.logger = logger;
52
57
  this.callbacks = callbacks;
53
58
  this.responseProcessor = new udtTowerResponse_1.TowerResponseProcessor();
59
+ this.recorder = recorder !== null && recorder !== void 0 ? recorder : null;
54
60
  // Use provided adapter or auto-detect platform
55
61
  this.bluetoothAdapter = adapter || udtBluetoothAdapterFactory_1.BluetoothAdapterFactory.create(udtBluetoothAdapterFactory_1.BluetoothPlatform.AUTO);
56
62
  // Set up adapter event callbacks
@@ -64,7 +70,37 @@ class UdtBleConnection {
64
70
  this.bleAvailabilityChange(available);
65
71
  });
66
72
  }
73
+ setDiagnosticsSnapshotProviders(providers) {
74
+ this.snapshotProviders = providers;
75
+ }
76
+ /**
77
+ * Record a disconnect incident with the recorder. Public so higher layers
78
+ * (e.g. UltimateDarkTower's beforeunload handler) can synthesize causes
79
+ * like 'page_unload' that aren't tied to a specific BLE detection path.
80
+ */
81
+ recordIncidentPublic(cause) {
82
+ return this.recordIncident(cause);
83
+ }
84
+ recordIncident(cause) {
85
+ var _a, _b, _c, _d, _e, _f;
86
+ if (!this.recorder || !this.recorder.enabled)
87
+ return null;
88
+ const queueSnapshot = (_b = (_a = this.snapshotProviders) === null || _a === void 0 ? void 0 : _a.commandQueue()) !== null && _b !== void 0 ? _b : {
89
+ queueLength: 0, isProcessing: false, currentCommand: null
90
+ };
91
+ const towerState = ((_d = (_c = this.snapshotProviders) === null || _c === void 0 ? void 0 : _c.towerState()) !== null && _d !== void 0 ? _d : null);
92
+ const brokenSeals = (_f = (_e = this.snapshotProviders) === null || _e === void 0 ? void 0 : _e.brokenSeals()) !== null && _f !== void 0 ? _f : [];
93
+ return this.recorder.recordIncident({
94
+ cause,
95
+ connectionStatus: this.getConnectionStatus(),
96
+ deviceInformation: this.getDeviceInformation(),
97
+ commandQueue: queueSnapshot,
98
+ towerState,
99
+ brokenSeals,
100
+ });
101
+ }
67
102
  async connect() {
103
+ var _a;
68
104
  if (this.isDisposed) {
69
105
  throw new Error('UdtBleConnection instance has been disposed and cannot reconnect');
70
106
  }
@@ -75,6 +111,7 @@ class UdtBleConnection {
75
111
  this.isConnected = true;
76
112
  this.lastSuccessfulCommand = Date.now();
77
113
  this.lastBatteryHeartbeat = Date.now();
114
+ (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.beginSession();
78
115
  // Read device information after successful connection
79
116
  await this.readDeviceInformation();
80
117
  if (this.enableConnectionMonitoring) {
@@ -85,11 +122,14 @@ class UdtBleConnection {
85
122
  catch (error) {
86
123
  this.logger.error(`Tower Connection Error: ${error}`, '[UDT][BLE]');
87
124
  this.isConnected = false;
88
- this.callbacks.onTowerDisconnect();
125
+ throw error;
89
126
  }
90
127
  }
91
128
  async disconnect() {
92
129
  this.stopConnectionMonitoring();
130
+ if (this.isConnected) {
131
+ this.recordIncident('user_initiated');
132
+ }
93
133
  if (this.bluetoothAdapter.isConnected()) {
94
134
  await this.bluetoothAdapter.disconnect();
95
135
  this.logger.info("Tower disconnected", '[UDT]');
@@ -101,6 +141,8 @@ class UdtBleConnection {
101
141
  * Used by UdtTowerCommands instead of direct characteristic access.
102
142
  */
103
143
  async writeCommand(command) {
144
+ var _a;
145
+ (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.recordCommandPayload('cmd_sent', command, { len: command.length });
104
146
  return await this.bluetoothAdapter.writeCharacteristic(command);
105
147
  }
106
148
  /**
@@ -108,9 +150,13 @@ class UdtBleConnection {
108
150
  * Called by the adapter's onCharacteristicValueChanged callback.
109
151
  */
110
152
  onRxData(receivedData) {
153
+ var _a, _b;
111
154
  this.lastSuccessfulCommand = Date.now();
112
155
  const { cmdKey } = this.responseProcessor.getTowerCommand(receivedData[0]);
113
156
  const isBattery = this.responseProcessor.isBatteryResponse(cmdKey);
157
+ if (((_a = this.recorder) === null || _a === void 0 ? void 0 : _a.enabled) && !isBattery) {
158
+ this.recorder.recordCommandPayload('cmd_response', receivedData, { cmdKey, len: receivedData.length });
159
+ }
114
160
  const shouldLogCommand = this.logTowerResponses &&
115
161
  this.responseProcessor.shouldLogResponse(cmdKey, this.logTowerResponseConfig) &&
116
162
  !isBattery;
@@ -127,6 +173,7 @@ class UdtBleConnection {
127
173
  this.lastBatteryHeartbeat = Date.now();
128
174
  const millivolts = (0, udtHelpers_1.getMilliVoltsFromTowerResponse)(receivedData);
129
175
  const batteryPercentage = (0, udtHelpers_1.milliVoltsToPercentage)(millivolts);
176
+ (_b = this.recorder) === null || _b === void 0 ? void 0 : _b.recordBattery(millivolts, (0, udtHelpers_1.milliVoltsToPercentageNumber)(millivolts));
130
177
  const didBatteryLevelChange = this.lastBatteryPercentage !== "" && this.lastBatteryPercentage !== batteryPercentage;
131
178
  const batteryLogFrequencyPassed = ((Date.now() - this.lastBatteryLog) >= this.batteryLogFrequency);
132
179
  const shouldLog = this.batteryLogEnabled && (this.batteryLogOnChangeOnly ?
@@ -149,20 +196,24 @@ class UdtBleConnection {
149
196
  }
150
197
  }
151
198
  handleTowerStateResponse(receivedData) {
199
+ var _a, _b, _c;
152
200
  const dataSkullDropCount = receivedData[udtConstants_1.SKULL_DROP_COUNT_POS];
153
201
  const state = (0, udtTowerState_1.rtdt_unpack_state)(receivedData);
154
202
  this.logger.debug(`Tower State: ${JSON.stringify(state)} `, '[UDT][BLE]');
203
+ (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.recordEvent('tower_state_response');
155
204
  if (this.performingCalibration) {
156
205
  this.performingCalibration = false;
157
206
  this.performingLongCommand = false;
158
207
  this.lastBatteryHeartbeat = Date.now();
159
208
  this.callbacks.onCalibrationComplete();
160
209
  this.logger.info('Tower calibration complete', '[UDT]');
210
+ (_b = this.recorder) === null || _b === void 0 ? void 0 : _b.recordEvent('calibration_complete');
161
211
  }
162
212
  if (dataSkullDropCount !== this.towerSkullDropCount) {
163
213
  if (dataSkullDropCount) {
164
214
  this.callbacks.onSkullDrop(dataSkullDropCount);
165
215
  this.logger.info(`Skull drop detected: app:${this.towerSkullDropCount < 0 ? 'empty' : this.towerSkullDropCount} tower:${dataSkullDropCount}`, '[UDT]');
216
+ (_c = this.recorder) === null || _c === void 0 ? void 0 : _c.recordEvent('skull_drop', { count: dataSkullDropCount });
166
217
  }
167
218
  else {
168
219
  this.logger.info(`Skull count reset to ${dataSkullDropCount}`, '[UDT]');
@@ -190,11 +241,15 @@ class UdtBleConnection {
190
241
  this.logger.info('Bluetooth availability changed', '[UDT][BLE]');
191
242
  if (!available && this.isConnected) {
192
243
  this.logger.warn('Bluetooth became unavailable - handling disconnection', '[UDT][BLE]');
244
+ this.recordIncident('bt_unavailable');
193
245
  this.handleDisconnection();
194
246
  }
195
247
  }
196
248
  onTowerDeviceDisconnected() {
197
249
  this.logger.warn('Tower device disconnected unexpectedly', '[UDT][BLE]');
250
+ if (this.isConnected) {
251
+ this.recordIncident('adapter_event');
252
+ }
198
253
  this.handleDisconnection();
199
254
  }
200
255
  handleDisconnection() {
@@ -223,11 +278,13 @@ class UdtBleConnection {
223
278
  }
224
279
  }
225
280
  checkConnectionHealth() {
281
+ var _a;
226
282
  if (!this.isConnected) {
227
283
  return;
228
284
  }
229
285
  if (!this.bluetoothAdapter.isGattConnected()) {
230
286
  this.logger.warn('GATT connection lost detected during health check', '[UDT][BLE]');
287
+ this.recordIncident('gatt_health_check');
231
288
  this.handleDisconnection();
232
289
  return;
233
290
  }
@@ -247,6 +304,13 @@ class UdtBleConnection {
247
304
  // Check if GATT is still connected via the adapter
248
305
  if (this.bluetoothAdapter.isGattConnected()) {
249
306
  this.logger.info('GATT connection still available - heartbeat timeout may be temporary', '[UDT][BLE]');
307
+ // Near-miss: the heartbeat went late but the GATT is still up. This is a
308
+ // strong signal worth recording for diagnostics — repeated near-misses
309
+ // before a real drop are the smoking gun.
310
+ (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.recordEvent('heartbeat_late', {
311
+ sinceMs: timeSinceLastBatteryHeartbeat,
312
+ threshold: timeoutThreshold,
313
+ });
250
314
  // Reset the last battery heartbeat to current time to give it another chance
251
315
  this.lastBatteryHeartbeat = Date.now();
252
316
  this.logger.info('Reset battery heartbeat timer - will monitor for another timeout period', '[UDT][BLE]');
@@ -254,6 +318,7 @@ class UdtBleConnection {
254
318
  }
255
319
  }
256
320
  this.logger.warn('Tower possibly disconnected due to battery depletion or power loss', '[UDT][BLE]');
321
+ this.recordIncident('heartbeat_timeout');
257
322
  this.handleDisconnection();
258
323
  return;
259
324
  }
@@ -261,6 +326,7 @@ class UdtBleConnection {
261
326
  const timeSinceLastResponse = Date.now() - this.lastSuccessfulCommand;
262
327
  if (timeSinceLastResponse > this.connectionTimeoutThreshold) {
263
328
  this.logger.warn('General connection timeout detected - no responses received', '[UDT][BLE]');
329
+ this.recordIncident('response_timeout');
264
330
  this.handleDisconnection();
265
331
  }
266
332
  }
@@ -1 +1 @@
1
- {"version":3,"file":"udtBleConnection.js","sourceRoot":"","sources":["../../src/udtBleConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"udtBleConnection.js","sourceRoot":"","sources":["../../src/udtBleConnection.ts"],"names":[],"mappings":"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"}
@@ -32,31 +32,31 @@ export interface BluetoothAdapterConfig {
32
32
  * Base class for all Bluetooth-related errors
33
33
  */
34
34
  export declare class BluetoothError extends Error {
35
- readonly originalError?: any | undefined;
36
- constructor(message: string, originalError?: any | undefined);
35
+ readonly originalError?: unknown | undefined;
36
+ constructor(message: string, originalError?: unknown | undefined);
37
37
  }
38
38
  /**
39
39
  * Error thrown when Bluetooth connection fails or is lost
40
40
  */
41
41
  export declare class BluetoothConnectionError extends BluetoothError {
42
- constructor(message: string, originalError?: any);
42
+ constructor(message: string, originalError?: unknown);
43
43
  }
44
44
  /**
45
45
  * Error thrown when the requested Bluetooth device cannot be found
46
46
  */
47
47
  export declare class BluetoothDeviceNotFoundError extends BluetoothError {
48
- constructor(message: string, originalError?: any);
48
+ constructor(message: string, originalError?: unknown);
49
49
  }
50
50
  /**
51
51
  * Error thrown when user cancels the device selection dialog
52
52
  * (Primarily used in Web Bluetooth environments)
53
53
  */
54
54
  export declare class BluetoothUserCancelledError extends BluetoothError {
55
- constructor(message: string, originalError?: any);
55
+ constructor(message: string, originalError?: unknown);
56
56
  }
57
57
  /**
58
58
  * Error thrown when a Bluetooth operation times out
59
59
  */
60
60
  export declare class BluetoothTimeoutError extends BluetoothError {
61
- constructor(message: string, originalError?: any);
61
+ constructor(message: string, originalError?: unknown);
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"udtBluetoothAdapter.js","sourceRoot":"","sources":["../../src/udtBluetoothAdapter.ts"],"names":[],"mappings":";;;AAyCA;;;GAGG;AACH,MAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe,EAAkB,aAAmB;QAC9D,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,kBAAa,GAAb,aAAa,CAAM;QAE9D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AALD,wCAKC;AAED;;GAEG;AACH,MAAa,wBAAyB,SAAQ,cAAc;IAC1D,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC;AAED;;GAEG;AACH,MAAa,4BAA6B,SAAQ,cAAc;IAC9D,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AALD,oEAKC;AAED;;;GAGG;AACH,MAAa,2BAA4B,SAAQ,cAAc;IAC7D,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AALD,kEAKC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,cAAc;IACvD,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC"}
1
+ {"version":3,"file":"udtBluetoothAdapter.js","sourceRoot":"","sources":["../../src/udtBluetoothAdapter.ts"],"names":[],"mappings":";;;AAyCA;;;GAGG;AACH,MAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe,EAAkB,aAAuB;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,kBAAa,GAAb,aAAa,CAAU;QAElE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AALD,wCAKC;AAED;;GAEG;AACH,MAAa,wBAAyB,SAAQ,cAAc;IAC1D,YAAY,OAAe,EAAE,aAAuB;QAClD,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC;AAED;;GAEG;AACH,MAAa,4BAA6B,SAAQ,cAAc;IAC9D,YAAY,OAAe,EAAE,aAAuB;QAClD,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AALD,oEAKC;AAED;;;GAGG;AACH,MAAa,2BAA4B,SAAQ,cAAc;IAC7D,YAAY,OAAe,EAAE,aAAuB;QAClD,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AALD,kEAKC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,cAAc;IACvD,YAAY,OAAe,EAAE,aAAuB;QAClD,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC"}
@@ -1,4 +1,5 @@
1
1
  import { Logger } from './udtLogger';
2
+ import type { UdtDiagnosticsRecorder } from './udtDiagnostics';
2
3
  /**
3
4
  * Internal command queue for managing sequential tower command processing
4
5
  * @private
@@ -11,7 +12,9 @@ export declare class CommandQueue {
11
12
  private timeoutHandle;
12
13
  private isProcessing;
13
14
  private readonly timeoutMs;
14
- constructor(logger: Logger, sendCommandFn: (command: Uint8Array) => Promise<void>);
15
+ private recorder;
16
+ constructor(logger: Logger, sendCommandFn: (command: Uint8Array) => Promise<void>, recorder?: UdtDiagnosticsRecorder);
17
+ setRecorder(recorder: UdtDiagnosticsRecorder | null): void;
15
18
  /**
16
19
  * Enqueue a command for processing
17
20
  */
@@ -6,7 +6,7 @@ exports.CommandQueue = void 0;
6
6
  * @private
7
7
  */
8
8
  class CommandQueue {
9
- constructor(logger, sendCommandFn) {
9
+ constructor(logger, sendCommandFn, recorder) {
10
10
  this.logger = logger;
11
11
  this.sendCommandFn = sendCommandFn;
12
12
  this.queue = [];
@@ -14,12 +14,18 @@ class CommandQueue {
14
14
  this.timeoutHandle = null;
15
15
  this.isProcessing = false;
16
16
  this.timeoutMs = 30000; // 30 seconds
17
+ this.recorder = null;
18
+ this.recorder = recorder !== null && recorder !== void 0 ? recorder : null;
19
+ }
20
+ setRecorder(recorder) {
21
+ this.recorder = recorder;
17
22
  }
18
23
  /**
19
24
  * Enqueue a command for processing
20
25
  */
21
26
  async enqueue(command, description) {
22
27
  return new Promise((resolve, reject) => {
28
+ var _a;
23
29
  const queuedCommand = {
24
30
  id: `cmd_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
25
31
  command,
@@ -30,6 +36,11 @@ class CommandQueue {
30
36
  };
31
37
  this.queue.push(queuedCommand);
32
38
  this.logger.debug(`Command queued: ${description || 'unnamed'} (queue size: ${this.queue.length})`, '[UDT]');
39
+ (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.recordEvent('cmd_enqueued', {
40
+ id: queuedCommand.id,
41
+ description,
42
+ queueDepth: this.queue.length,
43
+ });
33
44
  // Start processing if not already running
34
45
  if (!this.isProcessing) {
35
46
  this.processNext();
@@ -40,6 +51,7 @@ class CommandQueue {
40
51
  * Process the next command in the queue
41
52
  */
42
53
  async processNext() {
54
+ var _a, _b;
43
55
  if (this.isProcessing || this.queue.length === 0) {
44
56
  return;
45
57
  }
@@ -60,6 +72,11 @@ class CommandQueue {
60
72
  catch (error) {
61
73
  // Command failed to send, reject and move to next
62
74
  this.clearTimeout();
75
+ (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.recordEvent('cmd_failed', {
76
+ id,
77
+ description,
78
+ error: (_b = error === null || error === void 0 ? void 0 : error.message) !== null && _b !== void 0 ? _b : String(error),
79
+ });
63
80
  this.currentCommand = null;
64
81
  this.isProcessing = false;
65
82
  reject(error);
@@ -86,9 +103,16 @@ class CommandQueue {
86
103
  * Handle command timeout
87
104
  */
88
105
  onTimeout() {
106
+ var _a;
89
107
  if (this.currentCommand) {
90
- const { description, id } = this.currentCommand;
108
+ const { description, id, timestamp } = this.currentCommand;
91
109
  this.logger.warn(`Command timeout after ${this.timeoutMs}ms: ${description || id}`, '[UDT]');
110
+ (_a = this.recorder) === null || _a === void 0 ? void 0 : _a.recordEvent('cmd_timeout', {
111
+ id,
112
+ description,
113
+ ageMs: Date.now() - timestamp,
114
+ queueDepth: this.queue.length,
115
+ });
92
116
  const reject = this.currentCommand.reject;
93
117
  this.currentCommand = null;
94
118
  this.isProcessing = false;