@voltras/node-sdk 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/bluetooth/adapters/index.js +3 -1
  3. package/dist/cjs/bluetooth/adapters/index.js.map +1 -1
  4. package/dist/cjs/bluetooth/adapters/mock.js +186 -0
  5. package/dist/cjs/bluetooth/adapters/mock.js.map +1 -0
  6. package/dist/cjs/bluetooth/adapters/web.js +12 -0
  7. package/dist/cjs/bluetooth/adapters/web.js.map +1 -1
  8. package/dist/cjs/bluetooth/index.js +2 -1
  9. package/dist/cjs/bluetooth/index.js.map +1 -1
  10. package/dist/cjs/bluetooth/models/environment.js +5 -2
  11. package/dist/cjs/bluetooth/models/environment.js.map +1 -1
  12. package/dist/cjs/index.js +4 -2
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/sdk/voltra-manager.js +20 -0
  15. package/dist/cjs/sdk/voltra-manager.js.map +1 -1
  16. package/dist/esm/bluetooth/adapters/index.js +1 -0
  17. package/dist/esm/bluetooth/adapters/index.js.map +1 -1
  18. package/dist/esm/bluetooth/adapters/mock.js +182 -0
  19. package/dist/esm/bluetooth/adapters/mock.js.map +1 -0
  20. package/dist/esm/bluetooth/adapters/web.js +12 -0
  21. package/dist/esm/bluetooth/adapters/web.js.map +1 -1
  22. package/dist/esm/bluetooth/index.js +1 -1
  23. package/dist/esm/bluetooth/index.js.map +1 -1
  24. package/dist/esm/bluetooth/models/environment.js +5 -2
  25. package/dist/esm/bluetooth/models/environment.js.map +1 -1
  26. package/dist/esm/index.js +1 -0
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/sdk/voltra-manager.js +20 -0
  29. package/dist/esm/sdk/voltra-manager.js.map +1 -1
  30. package/dist/types/bluetooth/adapters/index.d.ts +1 -0
  31. package/dist/types/bluetooth/adapters/index.d.ts.map +1 -1
  32. package/dist/types/bluetooth/adapters/mock.d.ts +42 -0
  33. package/dist/types/bluetooth/adapters/mock.d.ts.map +1 -0
  34. package/dist/types/bluetooth/adapters/web.d.ts.map +1 -1
  35. package/dist/types/bluetooth/index.d.ts +1 -1
  36. package/dist/types/bluetooth/index.d.ts.map +1 -1
  37. package/dist/types/bluetooth/models/environment.d.ts.map +1 -1
  38. package/dist/types/index.d.ts +1 -0
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/dist/types/sdk/voltra-manager.d.ts +7 -1
  41. package/dist/types/sdk/voltra-manager.d.ts.map +1 -1
  42. package/package.json +3 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Voltra
3
+ Copyright (c) 2026 Henry Jewkes
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -8,7 +8,7 @@
8
8
  * - Node.js: webbluetooth npm package
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.NativeBLEAdapter = exports.NodeBLEAdapter = exports.WebBLEAdapter = void 0;
11
+ exports.MockBLEAdapter = exports.NativeBLEAdapter = exports.NodeBLEAdapter = exports.WebBLEAdapter = void 0;
12
12
  exports.createBLEAdapter = createBLEAdapter;
13
13
  // Platform adapters
14
14
  var web_1 = require("./web");
@@ -17,6 +17,8 @@ var node_1 = require("./node");
17
17
  Object.defineProperty(exports, "NodeBLEAdapter", { enumerable: true, get: function () { return node_1.NodeBLEAdapter; } });
18
18
  var native_1 = require("./native");
19
19
  Object.defineProperty(exports, "NativeBLEAdapter", { enumerable: true, get: function () { return native_1.NativeBLEAdapter; } });
20
+ var mock_1 = require("./mock");
21
+ Object.defineProperty(exports, "MockBLEAdapter", { enumerable: true, get: function () { return mock_1.MockBLEAdapter; } });
20
22
  const web_2 = require("./web");
21
23
  const node_2 = require("./node");
22
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAkEH,4CAYC;AAjED,oBAAoB;AACpB,6BAAsC;AAA7B,oGAAA,aAAa,OAAA;AACtB,+BAAgF;AAAvE,sGAAA,cAAc,OAAA;AACvB,mCAAsE;AAA7D,0GAAA,gBAAgB,OAAA;AAMzB,+BAAsC;AACtC,iCAAwC;AAUxC;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,MAA8B;IAC7D,IAAI,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACnD,OAAO,IAAI,qBAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO,IAAI,mBAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAmEH,4CAYC;AAlED,oBAAoB;AACpB,6BAAsC;AAA7B,oGAAA,aAAa,OAAA;AACtB,+BAAgF;AAAvE,sGAAA,cAAc,OAAA;AACvB,mCAAsE;AAA7D,0GAAA,gBAAgB,OAAA;AACzB,+BAA4D;AAAnD,sGAAA,cAAc,OAAA;AAMvB,+BAAsC;AACtC,iCAAwC;AAUxC;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,MAA8B;IAC7D,IAAI,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACnD,OAAO,IAAI,qBAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO,IAAI,mBAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;AACJ,CAAC"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * MockBLEAdapter
4
+ *
5
+ * Simulates a connected Voltra device with realistic telemetry streaming.
6
+ * Used for visual development and Playwright testing where Web Bluetooth
7
+ * is unavailable (automated Chrome can't show the system device picker).
8
+ *
9
+ * On connect, emits encoded 30-byte telemetry frames at 11Hz following
10
+ * real device phase transitions: IDLE -> CONCENTRIC -> HOLD -> ECCENTRIC -> IDLE.
11
+ * Also emits rep/set boundary notifications.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.MockBLEAdapter = void 0;
15
+ const base_1 = require("./base");
16
+ const enums_1 = require("../../voltra/protocol/constants/enums");
17
+ const message_types_1 = require("../../voltra/protocol/constants/message-types");
18
+ const frame_1 = require("../../voltra/models/telemetry/frame");
19
+ const telemetry_decoder_1 = require("../../voltra/protocol/telemetry-decoder");
20
+ const DEFAULTS = {
21
+ deviceName: 'VTR-Mock',
22
+ deviceId: 'mock-voltra-001',
23
+ scanDelayMs: 200,
24
+ connectDelayMs: 300,
25
+ weight: 100,
26
+ repsPerSet: 5,
27
+ restBetweenSetsMs: 3000,
28
+ };
29
+ // Phase durations in sample counts at ~11Hz
30
+ const PHASE_SAMPLES = {
31
+ idle: 5,
32
+ concentric: 9,
33
+ hold: 2,
34
+ eccentric: 16,
35
+ };
36
+ const SAMPLE_INTERVAL_MS = 91; // ~11Hz
37
+ const MAX_POSITION = 600;
38
+ const BASE_CONCENTRIC_VELOCITY = 80;
39
+ const BASE_ECCENTRIC_VELOCITY = 40;
40
+ const FATIGUE_RATE = 0.03;
41
+ class MockBLEAdapter extends base_1.BaseBLEAdapter {
42
+ constructor(config) {
43
+ super();
44
+ this.telemetryInterval = null;
45
+ this.sequence = 0;
46
+ this.repInSet = 0;
47
+ this.totalReps = 0;
48
+ this.config = { ...DEFAULTS, ...config };
49
+ }
50
+ async scan(_timeout) {
51
+ await delay(this.config.scanDelayMs);
52
+ return [
53
+ {
54
+ id: this.config.deviceId,
55
+ name: this.config.deviceName,
56
+ rssi: -50,
57
+ },
58
+ ];
59
+ }
60
+ async connect(_deviceId, _options) {
61
+ this.setConnectionState('connecting');
62
+ await delay(this.config.connectDelayMs);
63
+ this.setConnectionState('connected');
64
+ this._startTelemetry();
65
+ }
66
+ async write(_data) {
67
+ // Auth/init writes succeed silently
68
+ }
69
+ async disconnect() {
70
+ this._stopTelemetry();
71
+ this.setConnectionState('disconnected');
72
+ }
73
+ // ===========================================================================
74
+ // Telemetry Simulation
75
+ // ===========================================================================
76
+ _startTelemetry() {
77
+ this.sequence = 0;
78
+ this.repInSet = 0;
79
+ this.totalReps = 0;
80
+ let phaseIndex = 0;
81
+ let sampleInPhase = 0;
82
+ let resting = false;
83
+ let restStart = 0;
84
+ const phases = [
85
+ { phase: enums_1.MovementPhase.IDLE, count: PHASE_SAMPLES.idle },
86
+ { phase: enums_1.MovementPhase.CONCENTRIC, count: PHASE_SAMPLES.concentric },
87
+ { phase: enums_1.MovementPhase.HOLD, count: PHASE_SAMPLES.hold },
88
+ { phase: enums_1.MovementPhase.ECCENTRIC, count: PHASE_SAMPLES.eccentric },
89
+ ];
90
+ this.telemetryInterval = setInterval(() => {
91
+ // Rest period between sets
92
+ if (resting) {
93
+ if (Date.now() - restStart >= this.config.restBetweenSetsMs) {
94
+ resting = false;
95
+ this.repInSet = 0;
96
+ }
97
+ else {
98
+ this._emitIdleFrame();
99
+ return;
100
+ }
101
+ }
102
+ const current = phases[phaseIndex];
103
+ const progress = sampleInPhase / current.count;
104
+ const fatigue = 1 - FATIGUE_RATE * this.repInSet;
105
+ const baseForce = this.config.weight * 1.5;
106
+ const frame = this._buildFrame(current.phase, progress, fatigue, baseForce);
107
+ this.emitNotification((0, telemetry_decoder_1.encodeTelemetryFrame)(frame));
108
+ sampleInPhase++;
109
+ // Phase transition
110
+ if (sampleInPhase >= current.count) {
111
+ sampleInPhase = 0;
112
+ // Completed eccentric -> rep done
113
+ if (current.phase === enums_1.MovementPhase.ECCENTRIC) {
114
+ this.repInSet++;
115
+ this.totalReps++;
116
+ this._emitRepBoundary();
117
+ // Set boundary
118
+ if (this.repInSet >= this.config.repsPerSet) {
119
+ this._emitSetBoundary();
120
+ resting = true;
121
+ restStart = Date.now();
122
+ }
123
+ }
124
+ phaseIndex = (phaseIndex + 1) % phases.length;
125
+ }
126
+ }, SAMPLE_INTERVAL_MS);
127
+ }
128
+ _stopTelemetry() {
129
+ if (this.telemetryInterval) {
130
+ clearInterval(this.telemetryInterval);
131
+ this.telemetryInterval = null;
132
+ }
133
+ }
134
+ _buildFrame(phase, progress, fatigue, baseForce) {
135
+ let position = 0;
136
+ let force = 0;
137
+ let velocity = 0;
138
+ switch (phase) {
139
+ case enums_1.MovementPhase.CONCENTRIC:
140
+ position = Math.round(progress * MAX_POSITION);
141
+ velocity = Math.round(Math.sin(progress * Math.PI) * BASE_CONCENTRIC_VELOCITY * fatigue);
142
+ force = Math.round(baseForce * (1 - progress * 0.3) * fatigue);
143
+ break;
144
+ case enums_1.MovementPhase.HOLD:
145
+ position = MAX_POSITION;
146
+ force = Math.round(baseForce * 0.5);
147
+ break;
148
+ case enums_1.MovementPhase.ECCENTRIC:
149
+ position = Math.round((1 - progress) * MAX_POSITION);
150
+ velocity = Math.round(Math.sin(progress * Math.PI) * BASE_ECCENTRIC_VELOCITY * fatigue);
151
+ force = Math.round(baseForce * 0.8 * (1 - progress * 0.2) * fatigue);
152
+ break;
153
+ case enums_1.MovementPhase.IDLE:
154
+ default:
155
+ break;
156
+ }
157
+ return (0, frame_1.createFrame)(this.sequence++, phase, position, force, velocity);
158
+ }
159
+ _emitIdleFrame() {
160
+ const frame = (0, frame_1.createFrame)(this.sequence++, enums_1.MovementPhase.IDLE, 0, 0, 0);
161
+ this.emitNotification((0, telemetry_decoder_1.encodeTelemetryFrame)(frame));
162
+ }
163
+ _emitRepBoundary() {
164
+ const data = new Uint8Array(4);
165
+ const header = message_types_1.MessageTypes.REP_SUMMARY;
166
+ data[0] = header[0];
167
+ data[1] = header[1];
168
+ data[2] = header[2];
169
+ data[3] = header[3];
170
+ this.emitNotification(data);
171
+ }
172
+ _emitSetBoundary() {
173
+ const data = new Uint8Array(4);
174
+ const header = message_types_1.MessageTypes.SET_SUMMARY;
175
+ data[0] = header[0];
176
+ data[1] = header[1];
177
+ data[2] = header[2];
178
+ data[3] = header[3];
179
+ this.emitNotification(data);
180
+ }
181
+ }
182
+ exports.MockBLEAdapter = MockBLEAdapter;
183
+ function delay(ms) {
184
+ return new Promise((resolve) => setTimeout(resolve, ms));
185
+ }
186
+ //# sourceMappingURL=mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/mock.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,18 @@ class WebBLEAdapter extends web_bluetooth_base_1.WebBluetoothBase {
41
41
  * @returns Array with single selected device, or empty if cancelled
42
42
  */
43
43
  async scan(_timeout) {
44
+ if (typeof navigator === 'undefined' || !navigator.bluetooth) {
45
+ throw new Error('Web Bluetooth is not available in this browser');
46
+ }
47
+ // Check Bluetooth availability before opening the device picker.
48
+ // requestDevice() can crash the browser tab if Bluetooth is unavailable
49
+ // (no adapter, headless context, permissions blocked).
50
+ if (navigator.bluetooth.getAvailability) {
51
+ const available = await navigator.bluetooth.getAvailability();
52
+ if (!available) {
53
+ throw new Error('Bluetooth is not available. Ensure your device has a Bluetooth adapter and it is enabled.');
54
+ }
55
+ }
44
56
  try {
45
57
  // Request device from browser - this shows the native picker
46
58
  const device = await navigator.bluetooth.requestDevice({
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,6DAAiF;AAEjF,gDAAmD;AAEnD,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,QAAQ,CAAC,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAa,aAAc,SAAQ,qCAAgB;IAIjD,YAAY,MAA0B;QACpC,KAAK,CAAC,MAAM,CAAC,CAAC;QAJhB,gEAAgE;QACxD,mBAAc,GAA2B,IAAI,CAAC;IAItD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;gBACrD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBACnC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAChD,CAAC,CAAC,SAAS;gBACb,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAC/C,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;aAC5C,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAE7B,GAAG,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7C,OAAO;gBACL;oBACE,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,gBAAgB;oBACrC,IAAI,EAAE,IAAI,EAAE,mCAAmC;iBAChD;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mCAAmC;YACnC,IAAK,KAAe,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC9C,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAwB;QACtD,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,cAAc,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEhD,0DAA0D;QAC1D,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACvB,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,OAAO,OAAO,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,SAAS,CAAC;IACtE,CAAC;CACF;AA/FD,sCA+FC"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * for any BLE device.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.createBLEAdapter = exports.NativeBLEAdapter = exports.NodeBLEAdapter = exports.WebBLEAdapter = exports.createNativeEnvironmentInfo = exports.isBLEAvailable = exports.detectBLEEnvironment = exports.sortBySignalStrength = exports.getDeviceDisplayName = void 0;
10
+ exports.createBLEAdapter = exports.MockBLEAdapter = exports.NativeBLEAdapter = exports.NodeBLEAdapter = exports.WebBLEAdapter = exports.createNativeEnvironmentInfo = exports.isBLEAvailable = exports.detectBLEEnvironment = exports.sortBySignalStrength = exports.getDeviceDisplayName = void 0;
11
11
  var device_1 = require("./models/device");
12
12
  Object.defineProperty(exports, "getDeviceDisplayName", { enumerable: true, get: function () { return device_1.getDeviceDisplayName; } });
13
13
  Object.defineProperty(exports, "sortBySignalStrength", { enumerable: true, get: function () { return device_1.sortBySignalStrength; } });
@@ -21,6 +21,7 @@ var adapters_1 = require("./adapters");
21
21
  Object.defineProperty(exports, "WebBLEAdapter", { enumerable: true, get: function () { return adapters_1.WebBLEAdapter; } });
22
22
  Object.defineProperty(exports, "NodeBLEAdapter", { enumerable: true, get: function () { return adapters_1.NodeBLEAdapter; } });
23
23
  Object.defineProperty(exports, "NativeBLEAdapter", { enumerable: true, get: function () { return adapters_1.NativeBLEAdapter; } });
24
+ Object.defineProperty(exports, "MockBLEAdapter", { enumerable: true, get: function () { return adapters_1.MockBLEAdapter; } });
24
25
  // Factory
25
26
  Object.defineProperty(exports, "createBLEAdapter", { enumerable: true, get: function () { return adapters_1.createBLEAdapter; } });
26
27
  // Note: ScannerController is internal - use VoltraClient/VoltraManager for scanning
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAIH,0CAA6E;AAApE,8GAAA,oBAAoB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAOnD,oDAI8B;AAH5B,mHAAA,oBAAoB,OAAA;AACpB,6GAAA,cAAc,OAAA;AACd,0HAAA,2BAA2B,OAAA;AAG7B,WAAW;AACX,uCAeoB;AAPlB,WAAW;AACX,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,UAAU;AACV,4GAAA,gBAAgB,OAAA;AAIlB,oFAAoF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAIH,0CAA6E;AAApE,8GAAA,oBAAoB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAOnD,oDAI8B;AAH5B,mHAAA,oBAAoB,OAAA;AACpB,6GAAA,cAAc,OAAA;AACd,0HAAA,2BAA2B,OAAA;AAG7B,WAAW;AACX,uCAiBoB;AATlB,WAAW;AACX,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AAEd,UAAU;AACV,4GAAA,gBAAgB,OAAA;AAIlB,oFAAoF"}
@@ -39,10 +39,13 @@ function isNodeEnvironment() {
39
39
  function detectBLEEnvironment() {
40
40
  // Check for browser environment first
41
41
  if (isBrowserEnvironment()) {
42
+ const hasWebBluetooth = typeof navigator !== 'undefined' && 'bluetooth' in navigator && !!navigator.bluetooth;
42
43
  return {
43
44
  environment: 'web',
44
- bleSupported: true, // Via Web Bluetooth API
45
- warningMessage: null,
45
+ bleSupported: hasWebBluetooth,
46
+ warningMessage: hasWebBluetooth
47
+ ? null
48
+ : 'Web Bluetooth is not available. Use Chrome over HTTPS or localhost.',
46
49
  isWeb: true,
47
50
  requiresUserGesture: true, // Web Bluetooth requires user gesture for requestDevice()
48
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/bluetooth/models/environment.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+DH,oDA+BC;AAKD,wCAEC;AAMD,kEA+BC;AA9GD;;GAEG;AACH,MAAM,gBAAgB,GAA4C;IAChE,SAAS,EACP,0GAA0G;IAC5G,SAAS,EAAE,qFAAqF;CACjG,CAAC;AAEF;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB;IAClC,sCAAsC;IACtC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,IAAI,EAAE,wBAAwB;YAC5C,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,IAAI;YACX,mBAAmB,EAAE,IAAI,EAAE,0DAA0D;SACtF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,YAAY,EAAE,IAAI,EAAE,+BAA+B;YACnD,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAuB;IACpD,OAAO,GAAG,CAAC,YAAY,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,OAG3C;IACC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAE;YAC5C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAE;YAC9C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/bluetooth/models/environment.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+DH,oDAmCC;AAKD,wCAEC;AAMD,kEA+BC;AAlHD;;GAEG;AACH,MAAM,gBAAgB,GAA4C;IAChE,SAAS,EACP,0GAA0G;IAC5G,SAAS,EAAE,qFAAqF;CACjG,CAAC;AAEF;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB;IAClC,sCAAsC;IACtC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,MAAM,eAAe,GACnB,OAAO,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;QACxF,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,eAAe;YAC7B,cAAc,EAAE,eAAe;gBAC7B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,qEAAqE;YACzE,KAAK,EAAE,IAAI;YACX,mBAAmB,EAAE,IAAI,EAAE,0DAA0D;SACtF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,YAAY,EAAE,IAAI,EAAE,+BAA+B;YACnD,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAuB;IACpD,OAAO,GAAG,CAAC,YAAY,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,OAG3C;IACC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAE;YAC5C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAE;YAC9C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -35,8 +35,8 @@
35
35
  * ```
36
36
  */
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.ErrorCode = exports.TelemetryError = exports.CommandError = exports.BluetoothUnavailableError = exports.InvalidSettingError = exports.NotConnectedError = exports.TimeoutError = exports.AuthenticationError = exports.ConnectionError = exports.VoltraSDKError = exports.Workout = exports.Init = exports.Auth = exports.Timing = exports.BLE = exports.getAvailableModes = exports.getAvailableInverseChains = exports.getAvailableEccentric = exports.getAvailableChains = exports.getAvailableWeights = exports.getModeCommand = exports.getInverseChainsCommand = exports.getEccentricCommand = exports.getChainsCommand = exports.getWeightCommand = exports.VALID_TRAINING_MODES = exports.TrainingModeNames = exports.TrainingMode = exports.ParameterNames = exports.ParameterId = exports.TelemetryOffsets = exports.MessageTypes = exports.PhaseNames = exports.MovementPhase = exports.identifyMessageType = exports.encodeTelemetryFrame = exports.decodeNotification = exports.decodeTelemetryFrame = exports.createFrame = exports.filterVoltraDevices = exports.isVoltraDevice = exports.VOLTRA_DEVICE_PREFIX = exports.sortBySignalStrength = exports.getDeviceDisplayName = exports.createBLEAdapter = exports.NativeBLEAdapter = exports.NodeBLEAdapter = exports.WebBLEAdapter = exports.VoltraManager = exports.VoltraClient = void 0;
39
- exports.setDebugEnabled = exports.delay = void 0;
38
+ exports.TelemetryError = exports.CommandError = exports.BluetoothUnavailableError = exports.InvalidSettingError = exports.NotConnectedError = exports.TimeoutError = exports.AuthenticationError = exports.ConnectionError = exports.VoltraSDKError = exports.Workout = exports.Init = exports.Auth = exports.Timing = exports.BLE = exports.getAvailableModes = exports.getAvailableInverseChains = exports.getAvailableEccentric = exports.getAvailableChains = exports.getAvailableWeights = exports.getModeCommand = exports.getInverseChainsCommand = exports.getEccentricCommand = exports.getChainsCommand = exports.getWeightCommand = exports.VALID_TRAINING_MODES = exports.TrainingModeNames = exports.TrainingMode = exports.ParameterNames = exports.ParameterId = exports.TelemetryOffsets = exports.MessageTypes = exports.PhaseNames = exports.MovementPhase = exports.identifyMessageType = exports.encodeTelemetryFrame = exports.decodeNotification = exports.decodeTelemetryFrame = exports.createFrame = exports.filterVoltraDevices = exports.isVoltraDevice = exports.VOLTRA_DEVICE_PREFIX = exports.sortBySignalStrength = exports.getDeviceDisplayName = exports.createBLEAdapter = exports.MockBLEAdapter = exports.NativeBLEAdapter = exports.NodeBLEAdapter = exports.WebBLEAdapter = exports.VoltraManager = exports.VoltraClient = void 0;
39
+ exports.setDebugEnabled = exports.delay = exports.ErrorCode = void 0;
40
40
  // =============================================================================
41
41
  // High-Level API
42
42
  // =============================================================================
@@ -52,6 +52,8 @@ var node_1 = require("./bluetooth/adapters/node");
52
52
  Object.defineProperty(exports, "NodeBLEAdapter", { enumerable: true, get: function () { return node_1.NodeBLEAdapter; } });
53
53
  var native_1 = require("./bluetooth/adapters/native");
54
54
  Object.defineProperty(exports, "NativeBLEAdapter", { enumerable: true, get: function () { return native_1.NativeBLEAdapter; } });
55
+ var mock_1 = require("./bluetooth/adapters/mock");
56
+ Object.defineProperty(exports, "MockBLEAdapter", { enumerable: true, get: function () { return mock_1.MockBLEAdapter; } });
55
57
  var adapters_1 = require("./bluetooth/adapters");
56
58
  Object.defineProperty(exports, "createBLEAdapter", { enumerable: true, get: function () { return adapters_1.createBLEAdapter; } });
57
59
  var device_1 = require("./bluetooth/models/device");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;;AAEH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,6BAee;AAdb,mGAAA,YAAY,OAAA;AACZ,oGAAA,aAAa,OAAA;AAef,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,gDAAyD;AAAhD,oGAAA,aAAa,OAAA;AACtB,kDAA+E;AAAtE,sGAAA,cAAc,OAAA;AACvB,sDAA+D;AAAtD,0GAAA,gBAAgB,OAAA;AACzB,iDAAwD;AAA/C,4GAAA,gBAAgB,OAAA;AAiBzB,oDAAuF;AAA9E,8GAAA,oBAAoB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAEnD,+DAIuC;AAHrC,qHAAA,oBAAoB,OAAA;AACpB,+GAAA,cAAc,OAAA;AACd,oHAAA,mBAAmB,OAAA;AAoBrB,uDAAwD;AAA/C,wGAAA,WAAW,OAAA;AAEpB,yEAO6C;AAN3C,yHAAA,oBAAoB,OAAA;AACpB,uHAAA,kBAAkB,OAAA;AAClB,yHAAA,oBAAoB,OAAA;AACpB,wHAAA,mBAAmB,OAAA;AAKrB,yDAUqC;AATnC,0GAAA,aAAa,OAAA;AACb,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AACZ,6GAAA,gBAAgB,OAAA;AAChB,wGAAA,WAAW,OAAA;AACX,2GAAA,cAAc,OAAA;AACd,yGAAA,YAAY,OAAA;AACZ,8GAAA,iBAAiB,OAAA;AACjB,iHAAA,oBAAoB,OAAA;AAGtB,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,uDAWoC;AAVlC,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,0GAAA,cAAc,OAAA;AACd,+GAAA,mBAAmB,OAAA;AACnB,8GAAA,kBAAkB,OAAA;AAClB,iHAAA,qBAAqB,OAAA;AACrB,qHAAA,yBAAyB,OAAA;AACzB,6GAAA,iBAAiB,OAAA;AAGnB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,yDAA+E;AAAtE,gGAAA,GAAG,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,iGAAA,IAAI,OAAA;AAAE,iGAAA,IAAI,OAAA;AAAE,oGAAA,OAAO,OAAA;AAEzC,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,mCAYkB;AAXhB,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,6GAAA,mBAAmB,OAAA;AACnB,mHAAA,yBAAyB,OAAA;AACzB,sGAAA,YAAY,OAAA;AACZ,wGAAA,cAAc,OAAA;AACd,mGAAA,SAAS,OAAA;AAIX,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,wCAAuC;AAA9B,8FAAA,KAAK,OAAA;AACd,0CAAkD;AAAzC,yGAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;;AAEH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,6BAee;AAdb,mGAAA,YAAY,OAAA;AACZ,oGAAA,aAAa,OAAA;AAef,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,gDAAyD;AAAhD,oGAAA,aAAa,OAAA;AACtB,kDAA+E;AAAtE,sGAAA,cAAc,OAAA;AACvB,sDAA+D;AAAtD,0GAAA,gBAAgB,OAAA;AACzB,kDAA+E;AAAtE,sGAAA,cAAc,OAAA;AACvB,iDAAwD;AAA/C,4GAAA,gBAAgB,OAAA;AAiBzB,oDAAuF;AAA9E,8GAAA,oBAAoB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAEnD,+DAIuC;AAHrC,qHAAA,oBAAoB,OAAA;AACpB,+GAAA,cAAc,OAAA;AACd,oHAAA,mBAAmB,OAAA;AAoBrB,uDAAwD;AAA/C,wGAAA,WAAW,OAAA;AAEpB,yEAO6C;AAN3C,yHAAA,oBAAoB,OAAA;AACpB,uHAAA,kBAAkB,OAAA;AAClB,yHAAA,oBAAoB,OAAA;AACpB,wHAAA,mBAAmB,OAAA;AAKrB,yDAUqC;AATnC,0GAAA,aAAa,OAAA;AACb,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AACZ,6GAAA,gBAAgB,OAAA;AAChB,wGAAA,WAAW,OAAA;AACX,2GAAA,cAAc,OAAA;AACd,yGAAA,YAAY,OAAA;AACZ,8GAAA,iBAAiB,OAAA;AACjB,iHAAA,oBAAoB,OAAA;AAGtB,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,uDAWoC;AAVlC,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,0GAAA,cAAc,OAAA;AACd,+GAAA,mBAAmB,OAAA;AACnB,8GAAA,kBAAkB,OAAA;AAClB,iHAAA,qBAAqB,OAAA;AACrB,qHAAA,yBAAyB,OAAA;AACzB,6GAAA,iBAAiB,OAAA;AAGnB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,yDAA+E;AAAtE,gGAAA,GAAG,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,iGAAA,IAAI,OAAA;AAAE,iGAAA,IAAI,OAAA;AAAE,oGAAA,OAAO,OAAA;AAEzC,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,mCAYkB;AAXhB,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,6GAAA,mBAAmB,OAAA;AACnB,mHAAA,yBAAyB,OAAA;AACzB,sGAAA,YAAY,OAAA;AACZ,wGAAA,cAAc,OAAA;AACd,mGAAA,SAAS,OAAA;AAIX,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,wCAAuC;AAA9B,8FAAA,KAAK,OAAA;AACd,0CAAkD;AAAzC,yGAAA,eAAe,OAAA"}
@@ -89,6 +89,20 @@ class VoltraManager {
89
89
  static forNative(options) {
90
90
  return new VoltraManager({ ...options, platform: 'native' });
91
91
  }
92
+ /**
93
+ * Create a manager with a mock adapter for testing/visual development.
94
+ * Simulates a connected Voltra device with realistic telemetry.
95
+ */
96
+ static forMock(config) {
97
+ return new VoltraManager({
98
+ platform: 'mock',
99
+ adapterFactory: () => {
100
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
101
+ const { MockBLEAdapter } = require('../bluetooth/adapters/mock');
102
+ return new MockBLEAdapter(config);
103
+ },
104
+ });
105
+ }
92
106
  // ===========================================================================
93
107
  // Public Getters
94
108
  // ===========================================================================
@@ -395,6 +409,12 @@ class VoltraManager {
395
409
  const { NativeBLEAdapter } = require('../bluetooth/adapters/native');
396
410
  return new NativeBLEAdapter({ ble: bleConfig });
397
411
  };
412
+ case 'mock':
413
+ return () => {
414
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
415
+ const { MockBLEAdapter } = require('../bluetooth/adapters/mock');
416
+ return new MockBLEAdapter();
417
+ };
398
418
  default:
399
419
  throw new Error(`Unknown platform: ${platform}`);
400
420
  }
@@ -1 +1 @@
1
- {"version":3,"file":"voltra-manager.js","sourceRoot":"","sources":["../../../src/sdk/voltra-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voltra-manager.js","sourceRoot":"","sources":["../../../src/sdk/voltra-manager.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  export { WebBLEAdapter } from './web';
11
11
  export { NodeBLEAdapter } from './node';
12
12
  export { NativeBLEAdapter } from './native';
13
+ export { MockBLEAdapter } from './mock';
13
14
  import { WebBLEAdapter } from './web';
14
15
  import { NodeBLEAdapter } from './node';
15
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAA0C,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAA4B,MAAM,UAAU,CAAC;AAMtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAUxC;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA8B;IAC7D,IAAI,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACnD,OAAO,IAAI,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO,IAAI,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAA0C,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAA4B,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,cAAc,EAAsB,MAAM,QAAQ,CAAC;AAM5D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAUxC;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA8B;IAC7D,IAAI,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACnD,OAAO,IAAI,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO,IAAI,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;AACJ,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * MockBLEAdapter
3
+ *
4
+ * Simulates a connected Voltra device with realistic telemetry streaming.
5
+ * Used for visual development and Playwright testing where Web Bluetooth
6
+ * is unavailable (automated Chrome can't show the system device picker).
7
+ *
8
+ * On connect, emits encoded 30-byte telemetry frames at 11Hz following
9
+ * real device phase transitions: IDLE -> CONCENTRIC -> HOLD -> ECCENTRIC -> IDLE.
10
+ * Also emits rep/set boundary notifications.
11
+ */
12
+ import { BaseBLEAdapter } from './base';
13
+ import { MovementPhase } from '../../voltra/protocol/constants/enums';
14
+ import { MessageTypes } from '../../voltra/protocol/constants/message-types';
15
+ import { createFrame } from '../../voltra/models/telemetry/frame';
16
+ import { encodeTelemetryFrame } from '../../voltra/protocol/telemetry-decoder';
17
+ const DEFAULTS = {
18
+ deviceName: 'VTR-Mock',
19
+ deviceId: 'mock-voltra-001',
20
+ scanDelayMs: 200,
21
+ connectDelayMs: 300,
22
+ weight: 100,
23
+ repsPerSet: 5,
24
+ restBetweenSetsMs: 3000,
25
+ };
26
+ // Phase durations in sample counts at ~11Hz
27
+ const PHASE_SAMPLES = {
28
+ idle: 5,
29
+ concentric: 9,
30
+ hold: 2,
31
+ eccentric: 16,
32
+ };
33
+ const SAMPLE_INTERVAL_MS = 91; // ~11Hz
34
+ const MAX_POSITION = 600;
35
+ const BASE_CONCENTRIC_VELOCITY = 80;
36
+ const BASE_ECCENTRIC_VELOCITY = 40;
37
+ const FATIGUE_RATE = 0.03;
38
+ export class MockBLEAdapter extends BaseBLEAdapter {
39
+ constructor(config) {
40
+ super();
41
+ this.telemetryInterval = null;
42
+ this.sequence = 0;
43
+ this.repInSet = 0;
44
+ this.totalReps = 0;
45
+ this.config = { ...DEFAULTS, ...config };
46
+ }
47
+ async scan(_timeout) {
48
+ await delay(this.config.scanDelayMs);
49
+ return [
50
+ {
51
+ id: this.config.deviceId,
52
+ name: this.config.deviceName,
53
+ rssi: -50,
54
+ },
55
+ ];
56
+ }
57
+ async connect(_deviceId, _options) {
58
+ this.setConnectionState('connecting');
59
+ await delay(this.config.connectDelayMs);
60
+ this.setConnectionState('connected');
61
+ this._startTelemetry();
62
+ }
63
+ async write(_data) {
64
+ // Auth/init writes succeed silently
65
+ }
66
+ async disconnect() {
67
+ this._stopTelemetry();
68
+ this.setConnectionState('disconnected');
69
+ }
70
+ // ===========================================================================
71
+ // Telemetry Simulation
72
+ // ===========================================================================
73
+ _startTelemetry() {
74
+ this.sequence = 0;
75
+ this.repInSet = 0;
76
+ this.totalReps = 0;
77
+ let phaseIndex = 0;
78
+ let sampleInPhase = 0;
79
+ let resting = false;
80
+ let restStart = 0;
81
+ const phases = [
82
+ { phase: MovementPhase.IDLE, count: PHASE_SAMPLES.idle },
83
+ { phase: MovementPhase.CONCENTRIC, count: PHASE_SAMPLES.concentric },
84
+ { phase: MovementPhase.HOLD, count: PHASE_SAMPLES.hold },
85
+ { phase: MovementPhase.ECCENTRIC, count: PHASE_SAMPLES.eccentric },
86
+ ];
87
+ this.telemetryInterval = setInterval(() => {
88
+ // Rest period between sets
89
+ if (resting) {
90
+ if (Date.now() - restStart >= this.config.restBetweenSetsMs) {
91
+ resting = false;
92
+ this.repInSet = 0;
93
+ }
94
+ else {
95
+ this._emitIdleFrame();
96
+ return;
97
+ }
98
+ }
99
+ const current = phases[phaseIndex];
100
+ const progress = sampleInPhase / current.count;
101
+ const fatigue = 1 - FATIGUE_RATE * this.repInSet;
102
+ const baseForce = this.config.weight * 1.5;
103
+ const frame = this._buildFrame(current.phase, progress, fatigue, baseForce);
104
+ this.emitNotification(encodeTelemetryFrame(frame));
105
+ sampleInPhase++;
106
+ // Phase transition
107
+ if (sampleInPhase >= current.count) {
108
+ sampleInPhase = 0;
109
+ // Completed eccentric -> rep done
110
+ if (current.phase === MovementPhase.ECCENTRIC) {
111
+ this.repInSet++;
112
+ this.totalReps++;
113
+ this._emitRepBoundary();
114
+ // Set boundary
115
+ if (this.repInSet >= this.config.repsPerSet) {
116
+ this._emitSetBoundary();
117
+ resting = true;
118
+ restStart = Date.now();
119
+ }
120
+ }
121
+ phaseIndex = (phaseIndex + 1) % phases.length;
122
+ }
123
+ }, SAMPLE_INTERVAL_MS);
124
+ }
125
+ _stopTelemetry() {
126
+ if (this.telemetryInterval) {
127
+ clearInterval(this.telemetryInterval);
128
+ this.telemetryInterval = null;
129
+ }
130
+ }
131
+ _buildFrame(phase, progress, fatigue, baseForce) {
132
+ let position = 0;
133
+ let force = 0;
134
+ let velocity = 0;
135
+ switch (phase) {
136
+ case MovementPhase.CONCENTRIC:
137
+ position = Math.round(progress * MAX_POSITION);
138
+ velocity = Math.round(Math.sin(progress * Math.PI) * BASE_CONCENTRIC_VELOCITY * fatigue);
139
+ force = Math.round(baseForce * (1 - progress * 0.3) * fatigue);
140
+ break;
141
+ case MovementPhase.HOLD:
142
+ position = MAX_POSITION;
143
+ force = Math.round(baseForce * 0.5);
144
+ break;
145
+ case MovementPhase.ECCENTRIC:
146
+ position = Math.round((1 - progress) * MAX_POSITION);
147
+ velocity = Math.round(Math.sin(progress * Math.PI) * BASE_ECCENTRIC_VELOCITY * fatigue);
148
+ force = Math.round(baseForce * 0.8 * (1 - progress * 0.2) * fatigue);
149
+ break;
150
+ case MovementPhase.IDLE:
151
+ default:
152
+ break;
153
+ }
154
+ return createFrame(this.sequence++, phase, position, force, velocity);
155
+ }
156
+ _emitIdleFrame() {
157
+ const frame = createFrame(this.sequence++, MovementPhase.IDLE, 0, 0, 0);
158
+ this.emitNotification(encodeTelemetryFrame(frame));
159
+ }
160
+ _emitRepBoundary() {
161
+ const data = new Uint8Array(4);
162
+ const header = MessageTypes.REP_SUMMARY;
163
+ data[0] = header[0];
164
+ data[1] = header[1];
165
+ data[2] = header[2];
166
+ data[3] = header[3];
167
+ this.emitNotification(data);
168
+ }
169
+ _emitSetBoundary() {
170
+ const data = new Uint8Array(4);
171
+ const header = MessageTypes.SET_SUMMARY;
172
+ data[0] = header[0];
173
+ data[1] = header[1];
174
+ data[2] = header[2];
175
+ data[3] = header[3];
176
+ this.emitNotification(data);
177
+ }
178
+ }
179
+ function delay(ms) {
180
+ return new Promise((resolve) => setTimeout(resolve, ms));
181
+ }
182
+ //# sourceMappingURL=mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/mock.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,18 @@ export class WebBLEAdapter extends WebBluetoothBase {
38
38
  * @returns Array with single selected device, or empty if cancelled
39
39
  */
40
40
  async scan(_timeout) {
41
+ if (typeof navigator === 'undefined' || !navigator.bluetooth) {
42
+ throw new Error('Web Bluetooth is not available in this browser');
43
+ }
44
+ // Check Bluetooth availability before opening the device picker.
45
+ // requestDevice() can crash the browser tab if Bluetooth is unavailable
46
+ // (no adapter, headless context, permissions blocked).
47
+ if (navigator.bluetooth.getAvailability) {
48
+ const available = await navigator.bluetooth.getAvailability();
49
+ if (!available) {
50
+ throw new Error('Bluetooth is not available. Ensure your device has a Bluetooth adapter and it is enabled.');
51
+ }
52
+ }
41
53
  try {
42
54
  // Request device from browser - this shows the native picker
43
55
  const device = await navigator.bluetooth.requestDevice({
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAA2B,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IAIjD,YAAY,MAA0B;QACpC,KAAK,CAAC,MAAM,CAAC,CAAC;QAJhB,gEAAgE;QACxD,mBAAc,GAA2B,IAAI,CAAC;IAItD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;gBACrD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBACnC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAChD,CAAC,CAAC,SAAS;gBACb,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAC/C,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;aAC5C,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAE7B,GAAG,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7C,OAAO;gBACL;oBACE,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,gBAAgB;oBACrC,IAAI,EAAE,IAAI,EAAE,mCAAmC;iBAChD;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mCAAmC;YACnC,IAAK,KAAe,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC9C,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAwB;QACtD,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,cAAc,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEhD,0DAA0D;QAC1D,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACvB,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,OAAO,OAAO,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,SAAS,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export { detectBLEEnvironment, isBLEAvailable, createNativeEnvironmentInfo, } fr
10
10
  // Adapters
11
11
  export {
12
12
  // Adapters
13
- WebBLEAdapter, NodeBLEAdapter, NativeBLEAdapter,
13
+ WebBLEAdapter, NodeBLEAdapter, NativeBLEAdapter, MockBLEAdapter,
14
14
  // Factory
15
15
  createBLEAdapter, } from './adapters';
16
16
  // Note: ScannerController is internal - use VoltraClient/VoltraManager for scanning
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAO7E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,WAAW;AACX,OAAO;AAQL,WAAW;AACX,aAAa,EACb,cAAc,EACd,gBAAgB;AAChB,UAAU;AACV,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AAEpB,oFAAoF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAO7E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,WAAW;AACX,OAAO;AAQL,WAAW;AACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc;AAEd,UAAU;AACV,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AAEpB,oFAAoF"}
@@ -34,10 +34,13 @@ function isNodeEnvironment() {
34
34
  export function detectBLEEnvironment() {
35
35
  // Check for browser environment first
36
36
  if (isBrowserEnvironment()) {
37
+ const hasWebBluetooth = typeof navigator !== 'undefined' && 'bluetooth' in navigator && !!navigator.bluetooth;
37
38
  return {
38
39
  environment: 'web',
39
- bleSupported: true, // Via Web Bluetooth API
40
- warningMessage: null,
40
+ bleSupported: hasWebBluetooth,
41
+ warningMessage: hasWebBluetooth
42
+ ? null
43
+ : 'Web Bluetooth is not available. Use Chrome over HTTPS or localhost.',
41
44
  isWeb: true,
42
45
  requiresUserGesture: true, // Web Bluetooth requires user gesture for requestDevice()
43
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/bluetooth/models/environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;GAEG;AACH,MAAM,gBAAgB,GAA4C;IAChE,SAAS,EACP,0GAA0G;IAC5G,SAAS,EAAE,qFAAqF;CACjG,CAAC;AAEF;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,sCAAsC;IACtC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,IAAI,EAAE,wBAAwB;YAC5C,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,IAAI;YACX,mBAAmB,EAAE,IAAI,EAAE,0DAA0D;SACtF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,YAAY,EAAE,IAAI,EAAE,+BAA+B;YACnD,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAuB;IACpD,OAAO,GAAG,CAAC,YAAY,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAG3C;IACC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAE;YAC5C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAE;YAC9C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/bluetooth/models/environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;GAEG;AACH,MAAM,gBAAgB,GAA4C;IAChE,SAAS,EACP,0GAA0G;IAC5G,SAAS,EAAE,qFAAqF;CACjG,CAAC;AAEF;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,SAAS,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAC5F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,sCAAsC;IACtC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,MAAM,eAAe,GACnB,OAAO,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;QACxF,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,eAAe;YAC7B,cAAc,EAAE,eAAe;gBAC7B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,qEAAqE;YACzE,KAAK,EAAE,IAAI;YACX,mBAAmB,EAAE,IAAI,EAAE,0DAA0D;SACtF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,YAAY,EAAE,IAAI,EAAE,+BAA+B;YACnD,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAuB;IACpD,OAAO,GAAG,CAAC,YAAY,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAG3C;IACC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAE;YAC5C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAE;YAC9C,KAAK,EAAE,KAAK;YACZ,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC"}
package/dist/esm/index.js CHANGED
@@ -43,6 +43,7 @@ export { VoltraClient, VoltraManager, } from './sdk';
43
43
  export { WebBLEAdapter } from './bluetooth/adapters/web';
44
44
  export { NodeBLEAdapter } from './bluetooth/adapters/node';
45
45
  export { NativeBLEAdapter } from './bluetooth/adapters/native';
46
+ export { MockBLEAdapter } from './bluetooth/adapters/mock';
46
47
  export { createBLEAdapter } from './bluetooth/adapters';
47
48
  export { getDeviceDisplayName, sortBySignalStrength } from './bluetooth/models/device';
48
49
  export { VOLTRA_DEVICE_PREFIX, isVoltraDevice, filterVoltraDevices, } from './voltra/models/device-filter';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EACL,YAAY,EACZ,aAAa,GAad,MAAM,OAAO,CAAC;AAEf,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAsB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAiBxD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAmBvC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAErC,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAE/E,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,GAEV,MAAM,UAAU,CAAC;AAElB,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EACL,YAAY,EACZ,aAAa,GAad,MAAM,OAAO,CAAC;AAEf,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAsB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAsB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAiBxD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAmBvC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAErC,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAE/E,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,GAEV,MAAM,UAAU,CAAC;AAElB,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -86,6 +86,20 @@ export class VoltraManager {
86
86
  static forNative(options) {
87
87
  return new VoltraManager({ ...options, platform: 'native' });
88
88
  }
89
+ /**
90
+ * Create a manager with a mock adapter for testing/visual development.
91
+ * Simulates a connected Voltra device with realistic telemetry.
92
+ */
93
+ static forMock(config) {
94
+ return new VoltraManager({
95
+ platform: 'mock',
96
+ adapterFactory: () => {
97
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
98
+ const { MockBLEAdapter } = require('../bluetooth/adapters/mock');
99
+ return new MockBLEAdapter(config);
100
+ },
101
+ });
102
+ }
89
103
  // ===========================================================================
90
104
  // Public Getters
91
105
  // ===========================================================================
@@ -392,6 +406,12 @@ export class VoltraManager {
392
406
  const { NativeBLEAdapter } = require('../bluetooth/adapters/native');
393
407
  return new NativeBLEAdapter({ ble: bleConfig });
394
408
  };
409
+ case 'mock':
410
+ return () => {
411
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
412
+ const { MockBLEAdapter } = require('../bluetooth/adapters/mock');
413
+ return new MockBLEAdapter();
414
+ };
395
415
  default:
396
416
  throw new Error(`Unknown platform: ${platform}`);
397
417
  }
@@ -1 +1 @@
1
- {"version":3,"file":"voltra-manager.js","sourceRoot":"","sources":["../../../src/sdk/voltra-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voltra-manager.js","sourceRoot":"","sources":["../../../src/sdk/voltra-manager.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export type { BLEAdapter, Device, ConnectionState, NotificationCallback, Connect
10
10
  export { WebBLEAdapter } from './web';
11
11
  export { NodeBLEAdapter, type NodeBLEConfig, type DeviceChooser } from './node';
12
12
  export { NativeBLEAdapter, type NativeAdapterConfig } from './native';
13
+ export { MockBLEAdapter, type MockBLEConfig } from './mock';
13
14
  import type { BLEAdapter, BLEServiceConfig } from './types';
14
15
  /**
15
16
  * Full configuration for creating a BLE adapter.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAKtE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,GAAG,EAAE,gBAAgB,CAAC;CACvB;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,UAAU,CAY3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAK5D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,GAAG,EAAE,gBAAgB,CAAC;CACvB;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,UAAU,CAY3E"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * MockBLEAdapter
3
+ *
4
+ * Simulates a connected Voltra device with realistic telemetry streaming.
5
+ * Used for visual development and Playwright testing where Web Bluetooth
6
+ * is unavailable (automated Chrome can't show the system device picker).
7
+ *
8
+ * On connect, emits encoded 30-byte telemetry frames at 11Hz following
9
+ * real device phase transitions: IDLE -> CONCENTRIC -> HOLD -> ECCENTRIC -> IDLE.
10
+ * Also emits rep/set boundary notifications.
11
+ */
12
+ import { BaseBLEAdapter } from './base';
13
+ import type { Device, ConnectOptions } from './types';
14
+ export interface MockBLEConfig {
15
+ deviceName?: string;
16
+ deviceId?: string;
17
+ scanDelayMs?: number;
18
+ connectDelayMs?: number;
19
+ /** Weight in lbs — affects force values */
20
+ weight?: number;
21
+ repsPerSet?: number;
22
+ restBetweenSetsMs?: number;
23
+ }
24
+ export declare class MockBLEAdapter extends BaseBLEAdapter {
25
+ private readonly config;
26
+ private telemetryInterval;
27
+ private sequence;
28
+ private repInSet;
29
+ private totalReps;
30
+ constructor(config?: MockBLEConfig);
31
+ scan(_timeout: number): Promise<Device[]>;
32
+ connect(_deviceId: string, _options?: ConnectOptions): Promise<void>;
33
+ write(_data: Uint8Array): Promise<void>;
34
+ disconnect(): Promise<void>;
35
+ private _startTelemetry;
36
+ private _stopTelemetry;
37
+ private _buildFrame;
38
+ private _emitIdleFrame;
39
+ private _emitRepBoundary;
40
+ private _emitSetBoundary;
41
+ }
42
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMtD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA0BD,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;gBAEV,MAAM,CAAC,EAAE,aAAa;IAK5B,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWzC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpE,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC,OAAO,CAAC,eAAe;IA8DvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,WAAW;IAoCnB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;CASzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKtD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAAgC;gBAE1C,MAAM,EAAE,kBAAkB;IAItC;;;;;;;;;OASG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiC/C;;;;;;;;OAQG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKtD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAAgC;gBAE1C,MAAM,EAAE,kBAAkB;IAItC;;;;;;;;;OASG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiD/C;;;;;;;;OAQG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
@@ -10,5 +10,5 @@ export { getDeviceDisplayName, sortBySignalStrength } from './models/device';
10
10
  export type { BLEConnectionState } from './models/connection';
11
11
  export type { BLEEnvironment, BLEEnvironmentInfo } from './models/environment';
12
12
  export { detectBLEEnvironment, isBLEAvailable, createNativeEnvironmentInfo, } from './models/environment';
13
- export { type BLEAdapter, type BLEServiceConfig, type ConnectionState, type ConnectOptions, type NotificationCallback, type ConnectionStateCallback, WebBLEAdapter, NodeBLEAdapter, NativeBLEAdapter, createBLEAdapter, type CreateBLEAdapterConfig, } from './adapters';
13
+ export { type BLEAdapter, type BLEServiceConfig, type ConnectionState, type ConnectOptions, type NotificationCallback, type ConnectionStateCallback, WebBLEAdapter, NodeBLEAdapter, NativeBLEAdapter, MockBLEAdapter, type MockBLEConfig, createBLEAdapter, type CreateBLEAdapterConfig, } from './adapters';
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE5B,aAAa,EACb,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE5B,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,KAAK,aAAa,EAElB,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/models/environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,WAAW,GACX,SAAS,GACT,KAAK,GACL,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,WAAW,EAAE,cAAc,CAAC;IAC5B,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,oFAAoF;IACpF,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AA+BD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,CA+BzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAE/D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,kBAAkB,CA4BrB"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/models/environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,WAAW,GACX,SAAS,GACT,KAAK,GACL,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,WAAW,EAAE,cAAc,CAAC;IAC5B,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,oFAAoF;IACpF,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AA+BD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,CAmCzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAE/D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,kBAAkB,CA4BrB"}
@@ -37,6 +37,7 @@ export { VoltraClient, VoltraManager, type Platform, type VoltraClientOptions, t
37
37
  export { WebBLEAdapter } from './bluetooth/adapters/web';
38
38
  export { NodeBLEAdapter, type DeviceChooser } from './bluetooth/adapters/node';
39
39
  export { NativeBLEAdapter } from './bluetooth/adapters/native';
40
+ export { MockBLEAdapter, type MockBLEConfig } from './bluetooth/adapters/mock';
40
41
  export { createBLEAdapter } from './bluetooth/adapters';
41
42
  export type { BLEAdapter, BLEServiceConfig, ConnectOptions, ConnectionState, NotificationCallback, ConnectionStateCallback, } from './bluetooth/adapters/types';
42
43
  export type { DiscoveredDevice } from './bluetooth/models/device';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAMpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAMvC,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAMxE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM/E,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,KAAK,SAAS,IAAI,aAAa,GAChC,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAMpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAMvC,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAMxE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM/E,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,KAAK,SAAS,IAAI,aAAa,GAChC,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -28,13 +28,14 @@
28
28
  * ```
29
29
  */
30
30
  import type { BLEAdapter } from '../bluetooth/adapters/types';
31
+ import type { MockBLEConfig } from '../bluetooth/adapters/mock';
31
32
  import type { DiscoveredDevice } from '../bluetooth/models/device';
32
33
  import { VoltraClient } from './voltra-client';
33
34
  import type { VoltraClientOptions, ScanOptions } from './types';
34
35
  /**
35
36
  * Supported platforms for BLE.
36
37
  */
37
- export type Platform = 'web' | 'node' | 'native';
38
+ export type Platform = 'web' | 'node' | 'native' | 'mock';
38
39
  /**
39
40
  * Factory function to create a BLE adapter.
40
41
  */
@@ -123,6 +124,11 @@ export declare class VoltraManager {
123
124
  * Note: Prefer importing from '@voltras/node-sdk/native' instead.
124
125
  */
125
126
  static forNative(options?: Omit<VoltraManagerOptions, 'platform'>): VoltraManager;
127
+ /**
128
+ * Create a manager with a mock adapter for testing/visual development.
129
+ * Simulates a connected Voltra device with realistic telemetry.
130
+ */
131
+ static forMock(config?: MockBLEConfig): VoltraManager;
126
132
  /**
127
133
  * Get all connected device IDs.
128
134
  */
@@ -1 +1 @@
1
- {"version":3,"file":"voltra-manager.d.ts","sourceRoot":"","sources":["../../../src/sdk/voltra-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voltra-manager.d.ts","sourceRoot":"","sources":["../../../src/sdk/voltra-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltras/node-sdk",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "SDK for connecting to and controlling Voltra fitness devices",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -45,6 +45,8 @@
45
45
  "typecheck": "tsc --noEmit",
46
46
  "docs:api": "typedoc --out docs/api src/index.ts",
47
47
  "generate:protocol": "npx tsx ../voltra-private/build.ts",
48
+ "ci:local": "npm run lint && npm run format:check && npm run typecheck && npm run test && npm run build",
49
+ "audit:privacy": "bash scripts/audit-privacy.sh",
48
50
  "clean": "rm -rf dist",
49
51
  "prepublishOnly": "npm run clean && npm run build && npm run test",
50
52
  "prepare": "husky"