@voltras/node-sdk 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +122 -31
- package/dist/cjs/bluetooth/adapters/native.js +36 -34
- package/dist/cjs/bluetooth/adapters/native.js.map +1 -1
- package/dist/cjs/bluetooth/adapters/node.js +9 -7
- package/dist/cjs/bluetooth/adapters/node.js.map +1 -1
- package/dist/cjs/bluetooth/adapters/web-bluetooth-base.js +6 -4
- package/dist/cjs/bluetooth/adapters/web-bluetooth-base.js.map +1 -1
- package/dist/cjs/bluetooth/adapters/web.js +7 -5
- package/dist/cjs/bluetooth/adapters/web.js.map +1 -1
- package/dist/cjs/bluetooth/controllers/scanner-controller.js +0 -2
- package/dist/cjs/bluetooth/controllers/scanner-controller.js.map +1 -1
- package/dist/cjs/bluetooth/index.js.map +1 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +19 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react/hooks.js +2 -6
- package/dist/cjs/react/hooks.js.map +1 -1
- package/dist/cjs/sdk/notification-dispatcher.js +47 -0
- package/dist/cjs/sdk/notification-dispatcher.js.map +1 -0
- package/dist/cjs/sdk/reconnect-handler.js +61 -0
- package/dist/cjs/sdk/reconnect-handler.js.map +1 -0
- package/dist/cjs/sdk/voltra-client.js +206 -72
- package/dist/cjs/sdk/voltra-client.js.map +1 -1
- package/dist/cjs/sdk/voltra-manager.js +13 -2
- package/dist/cjs/sdk/voltra-manager.js.map +1 -1
- package/dist/cjs/shared/index.js +5 -1
- package/dist/cjs/shared/index.js.map +1 -1
- package/dist/cjs/shared/logger.js +54 -0
- package/dist/cjs/shared/logger.js.map +1 -0
- package/dist/cjs/voltra/index.js +15 -12
- package/dist/cjs/voltra/index.js.map +1 -1
- package/dist/cjs/voltra/models/device.js +13 -0
- package/dist/cjs/voltra/models/device.js.map +1 -1
- package/dist/cjs/voltra/protocol/commands.js +127 -210
- package/dist/cjs/voltra/protocol/commands.js.map +1 -1
- package/dist/cjs/voltra/protocol/constants/ble-config.js +24 -0
- package/dist/cjs/voltra/protocol/constants/ble-config.js.map +1 -0
- package/dist/cjs/voltra/protocol/constants/connection-commands.js +55 -0
- package/dist/cjs/voltra/protocol/constants/connection-commands.js.map +1 -0
- package/dist/cjs/voltra/protocol/constants/enums.js +117 -0
- package/dist/cjs/voltra/protocol/constants/enums.js.map +1 -0
- package/dist/cjs/voltra/protocol/constants/index.js +32 -0
- package/dist/cjs/voltra/protocol/constants/index.js.map +1 -0
- package/dist/cjs/voltra/protocol/constants/message-types.js +70 -0
- package/dist/cjs/voltra/protocol/constants/message-types.js.map +1 -0
- package/dist/cjs/voltra/protocol/constants/timing.js +21 -0
- package/dist/cjs/voltra/protocol/constants/timing.js.map +1 -0
- package/dist/cjs/voltra/protocol/data/protocol-data.generated.js +7 -0
- package/dist/cjs/voltra/protocol/data/protocol-data.generated.js.map +1 -0
- package/dist/cjs/voltra/protocol/telemetry-decoder.js +122 -6
- package/dist/cjs/voltra/protocol/telemetry-decoder.js.map +1 -1
- package/dist/cjs/voltra/protocol/types.js +9 -0
- package/dist/cjs/voltra/protocol/types.js.map +1 -0
- package/dist/esm/bluetooth/adapters/native.js +36 -34
- package/dist/esm/bluetooth/adapters/native.js.map +1 -1
- package/dist/esm/bluetooth/adapters/node.js +9 -7
- package/dist/esm/bluetooth/adapters/node.js.map +1 -1
- package/dist/esm/bluetooth/adapters/web-bluetooth-base.js +6 -4
- package/dist/esm/bluetooth/adapters/web-bluetooth-base.js.map +1 -1
- package/dist/esm/bluetooth/adapters/web.js +7 -5
- package/dist/esm/bluetooth/adapters/web.js.map +1 -1
- package/dist/esm/bluetooth/controllers/scanner-controller.js +0 -2
- package/dist/esm/bluetooth/controllers/scanner-controller.js.map +1 -1
- package/dist/esm/bluetooth/index.js +1 -1
- package/dist/esm/bluetooth/index.js.map +1 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.js +4 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/react/hooks.js +1 -5
- package/dist/esm/react/hooks.js.map +1 -1
- package/dist/esm/sdk/notification-dispatcher.js +44 -0
- package/dist/esm/sdk/notification-dispatcher.js.map +1 -0
- package/dist/esm/sdk/reconnect-handler.js +57 -0
- package/dist/esm/sdk/reconnect-handler.js.map +1 -0
- package/dist/esm/sdk/voltra-client.js +204 -70
- package/dist/esm/sdk/voltra-client.js.map +1 -1
- package/dist/esm/sdk/voltra-manager.js +13 -2
- package/dist/esm/sdk/voltra-manager.js.map +1 -1
- package/dist/esm/shared/index.js +1 -0
- package/dist/esm/shared/index.js.map +1 -1
- package/dist/esm/shared/logger.js +49 -0
- package/dist/esm/shared/logger.js.map +1 -0
- package/dist/esm/voltra/index.js +3 -8
- package/dist/esm/voltra/index.js.map +1 -1
- package/dist/esm/voltra/models/device.js +13 -0
- package/dist/esm/voltra/models/device.js.map +1 -1
- package/dist/esm/voltra/protocol/commands.js +117 -209
- package/dist/esm/voltra/protocol/commands.js.map +1 -1
- package/dist/esm/voltra/protocol/constants/ble-config.js +18 -0
- package/dist/esm/voltra/protocol/constants/ble-config.js.map +1 -0
- package/dist/esm/voltra/protocol/constants/connection-commands.js +49 -0
- package/dist/esm/voltra/protocol/constants/connection-commands.js.map +1 -0
- package/dist/esm/voltra/protocol/constants/enums.js +114 -0
- package/dist/esm/voltra/protocol/constants/enums.js.map +1 -0
- package/dist/esm/voltra/protocol/constants/index.js +12 -0
- package/dist/esm/voltra/protocol/constants/index.js.map +1 -0
- package/dist/esm/voltra/protocol/constants/message-types.js +64 -0
- package/dist/esm/voltra/protocol/constants/message-types.js.map +1 -0
- package/dist/esm/voltra/protocol/constants/timing.js +18 -0
- package/dist/esm/voltra/protocol/constants/timing.js.map +1 -0
- package/dist/esm/voltra/protocol/data/protocol-data.generated.js +5 -0
- package/dist/esm/voltra/protocol/data/protocol-data.generated.js.map +1 -0
- package/dist/esm/voltra/protocol/telemetry-decoder.js +124 -8
- package/dist/esm/voltra/protocol/telemetry-decoder.js.map +1 -1
- package/dist/esm/voltra/protocol/types.js +8 -0
- package/dist/esm/voltra/protocol/types.js.map +1 -0
- package/dist/types/bluetooth/adapters/native.d.ts.map +1 -1
- package/dist/types/bluetooth/adapters/node.d.ts.map +1 -1
- package/dist/types/bluetooth/adapters/web-bluetooth-base.d.ts.map +1 -1
- package/dist/types/bluetooth/adapters/web.d.ts.map +1 -1
- package/dist/types/bluetooth/controllers/scanner-controller.d.ts.map +1 -1
- package/dist/types/bluetooth/index.d.ts +1 -1
- package/dist/types/bluetooth/index.d.ts.map +1 -1
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/react/hooks.d.ts.map +1 -1
- package/dist/types/sdk/index.d.ts +2 -1
- package/dist/types/sdk/index.d.ts.map +1 -1
- package/dist/types/sdk/notification-dispatcher.d.ts +29 -0
- package/dist/types/sdk/notification-dispatcher.d.ts.map +1 -0
- package/dist/types/sdk/reconnect-handler.d.ts +55 -0
- package/dist/types/sdk/reconnect-handler.d.ts.map +1 -0
- package/dist/types/sdk/types.d.ts +35 -0
- package/dist/types/sdk/types.d.ts.map +1 -1
- package/dist/types/sdk/voltra-client.d.ts +77 -2
- package/dist/types/sdk/voltra-client.d.ts.map +1 -1
- package/dist/types/sdk/voltra-manager.d.ts.map +1 -1
- package/dist/types/shared/index.d.ts +1 -0
- package/dist/types/shared/index.d.ts.map +1 -1
- package/dist/types/shared/logger.d.ts +39 -0
- package/dist/types/shared/logger.d.ts.map +1 -0
- package/dist/types/voltra/index.d.ts +3 -3
- package/dist/types/voltra/index.d.ts.map +1 -1
- package/dist/types/voltra/models/device.d.ts +11 -1
- package/dist/types/voltra/models/device.d.ts.map +1 -1
- package/dist/types/voltra/protocol/commands.d.ts +47 -87
- package/dist/types/voltra/protocol/commands.d.ts.map +1 -1
- package/dist/types/voltra/protocol/constants/ble-config.d.ts +16 -0
- package/dist/types/voltra/protocol/constants/ble-config.d.ts.map +1 -0
- package/dist/types/voltra/protocol/constants/connection-commands.d.ts +37 -0
- package/dist/types/voltra/protocol/constants/connection-commands.d.ts.map +1 -0
- package/dist/types/voltra/protocol/constants/enums.d.ts +72 -0
- package/dist/types/voltra/protocol/constants/enums.d.ts.map +1 -0
- package/dist/types/voltra/protocol/constants/index.d.ts +12 -0
- package/dist/types/voltra/protocol/constants/index.d.ts.map +1 -0
- package/dist/types/voltra/protocol/constants/message-types.d.ts +52 -0
- package/dist/types/voltra/protocol/constants/message-types.d.ts.map +1 -0
- package/dist/types/voltra/protocol/constants/timing.d.ts +18 -0
- package/dist/types/voltra/protocol/constants/timing.d.ts.map +1 -0
- package/dist/types/voltra/protocol/data/protocol-data.generated.d.ts +3 -0
- package/dist/types/voltra/protocol/data/protocol-data.generated.d.ts.map +1 -0
- package/dist/types/voltra/protocol/telemetry-decoder.d.ts +15 -2
- package/dist/types/voltra/protocol/telemetry-decoder.d.ts.map +1 -1
- package/dist/types/voltra/protocol/types.d.ts +247 -0
- package/dist/types/voltra/protocol/types.d.ts.map +1 -0
- package/package.json +9 -8
- package/dist/cjs/voltra/protocol/constants.js +0 -136
- package/dist/cjs/voltra/protocol/constants.js.map +0 -1
- package/dist/cjs/voltra/protocol/data/chains.json +0 -830
- package/dist/cjs/voltra/protocol/data/eccentric.json +0 -1598
- package/dist/cjs/voltra/protocol/data/protocol.json +0 -54
- package/dist/cjs/voltra/protocol/data/weights.json +0 -62
- package/dist/esm/voltra/protocol/constants.js +0 -130
- package/dist/esm/voltra/protocol/constants.js.map +0 -1
- package/dist/esm/voltra/protocol/data/chains.json +0 -830
- package/dist/esm/voltra/protocol/data/eccentric.json +0 -1598
- package/dist/esm/voltra/protocol/data/protocol.json +0 -54
- package/dist/esm/voltra/protocol/data/weights.json +0 -62
- package/dist/types/voltra/protocol/constants.d.ts +0 -103
- package/dist/types/voltra/protocol/constants.d.ts.map +0 -1
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Voltra Protocol Constants
|
|
4
|
-
*
|
|
5
|
-
* BLE configuration, authentication, and command constants for
|
|
6
|
-
* Beyond Power Voltra resistance training devices.
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PhaseNames = exports.MovementPhase = exports.TelemetryOffsets = exports.MessageTypes = exports.Workout = exports.Init = exports.Auth = exports.Timing = exports.BLE = void 0;
|
|
13
|
-
const utils_1 = require("../../shared/utils");
|
|
14
|
-
const protocol_json_1 = __importDefault(require("./data/protocol.json"));
|
|
15
|
-
// =============================================================================
|
|
16
|
-
// BLE Configuration
|
|
17
|
-
// =============================================================================
|
|
18
|
-
exports.BLE = {
|
|
19
|
-
/** Main service UUID for Voltra devices */
|
|
20
|
-
SERVICE_UUID: protocol_json_1.default.ble.service_uuid,
|
|
21
|
-
/** Characteristic for receiving notifications */
|
|
22
|
-
NOTIFY_CHAR_UUID: protocol_json_1.default.ble.notify_char_uuid,
|
|
23
|
-
/** Characteristic for writing commands */
|
|
24
|
-
WRITE_CHAR_UUID: protocol_json_1.default.ble.write_char_uuid,
|
|
25
|
-
/** Device name prefix for scanning (e.g., "VTR-") */
|
|
26
|
-
DEVICE_NAME_PREFIX: protocol_json_1.default.ble.device_name_prefix,
|
|
27
|
-
};
|
|
28
|
-
// =============================================================================
|
|
29
|
-
// Timing Configuration
|
|
30
|
-
// =============================================================================
|
|
31
|
-
exports.Timing = {
|
|
32
|
-
/** Delay between init commands (ms) */
|
|
33
|
-
INIT_COMMAND_DELAY_MS: 20,
|
|
34
|
-
/** Delay between dual commands like chains/eccentric (ms) */
|
|
35
|
-
DUAL_COMMAND_DELAY_MS: 500,
|
|
36
|
-
/** Timeout for authentication response (ms) */
|
|
37
|
-
AUTH_TIMEOUT_MS: 3000,
|
|
38
|
-
/** Minimum responses expected during auth */
|
|
39
|
-
MIN_AUTH_RESPONSES: 2,
|
|
40
|
-
/** Minimum responses expected after commands */
|
|
41
|
-
MIN_COMMAND_RESPONSES: 4,
|
|
42
|
-
};
|
|
43
|
-
// =============================================================================
|
|
44
|
-
// Authentication
|
|
45
|
-
// =============================================================================
|
|
46
|
-
/**
|
|
47
|
-
* Device authentication identifiers.
|
|
48
|
-
*
|
|
49
|
-
* 41-byte device IDs that identify the connecting app.
|
|
50
|
-
* Both iPhone and iPad IDs work - the Voltra doesn't care which.
|
|
51
|
-
*/
|
|
52
|
-
exports.Auth = {
|
|
53
|
-
/** iPhone identity from Beyond+ app */
|
|
54
|
-
DEVICE_ID: (0, utils_1.hexToBytes)(protocol_json_1.default.auth.iphone),
|
|
55
|
-
/** iPad identity (alternative) */
|
|
56
|
-
DEVICE_ID_IPAD: (0, utils_1.hexToBytes)(protocol_json_1.default.auth.ipad),
|
|
57
|
-
};
|
|
58
|
-
// =============================================================================
|
|
59
|
-
// Initialization
|
|
60
|
-
// =============================================================================
|
|
61
|
-
/**
|
|
62
|
-
* Minimal 2-command init sequence (reduced from 22+ in Beyond+ app).
|
|
63
|
-
*/
|
|
64
|
-
exports.Init = {
|
|
65
|
-
SEQUENCE: protocol_json_1.default.init.commands.map(utils_1.hexToBytes),
|
|
66
|
-
};
|
|
67
|
-
// =============================================================================
|
|
68
|
-
// Workout Commands
|
|
69
|
-
// =============================================================================
|
|
70
|
-
/**
|
|
71
|
-
* Workout control commands.
|
|
72
|
-
*
|
|
73
|
-
* To start: set weight -> PREPARE -> SETUP -> GO
|
|
74
|
-
* To stop: STOP
|
|
75
|
-
*/
|
|
76
|
-
exports.Workout = {
|
|
77
|
-
/** Prepare for workout (b04f=01) */
|
|
78
|
-
PREPARE: (0, utils_1.hexToBytes)(protocol_json_1.default.workout.prepare),
|
|
79
|
-
/** Setup workout mode (823e setup) */
|
|
80
|
-
SETUP: (0, utils_1.hexToBytes)(protocol_json_1.default.workout.setup),
|
|
81
|
-
/** Start resistance (893e=05) */
|
|
82
|
-
GO: (0, utils_1.hexToBytes)(protocol_json_1.default.workout.go),
|
|
83
|
-
/** Stop resistance (893e=04) */
|
|
84
|
-
STOP: (0, utils_1.hexToBytes)(protocol_json_1.default.workout.stop),
|
|
85
|
-
};
|
|
86
|
-
// =============================================================================
|
|
87
|
-
// Telemetry Message Types (loaded from protocol.json)
|
|
88
|
-
// =============================================================================
|
|
89
|
-
/**
|
|
90
|
-
* Message type identifiers (first 4 bytes of notifications).
|
|
91
|
-
* Values loaded from protocol.json for single source of truth.
|
|
92
|
-
*/
|
|
93
|
-
exports.MessageTypes = {
|
|
94
|
-
/** Real-time telemetry stream (~11 Hz) */
|
|
95
|
-
TELEMETRY_STREAM: (0, utils_1.hexToBytes)(protocol_json_1.default.telemetry.message_types.stream),
|
|
96
|
-
/** Rep completion summary */
|
|
97
|
-
REP_SUMMARY: (0, utils_1.hexToBytes)(protocol_json_1.default.telemetry.message_types.rep_summary),
|
|
98
|
-
/** Set completion summary */
|
|
99
|
-
SET_SUMMARY: (0, utils_1.hexToBytes)(protocol_json_1.default.telemetry.message_types.set_summary),
|
|
100
|
-
/** Status update */
|
|
101
|
-
STATUS_UPDATE: (0, utils_1.hexToBytes)(protocol_json_1.default.telemetry.message_types.status_update),
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Byte offsets for parsing telemetry stream messages.
|
|
105
|
-
* Values loaded from protocol.json for single source of truth.
|
|
106
|
-
*/
|
|
107
|
-
exports.TelemetryOffsets = {
|
|
108
|
-
SEQUENCE: protocol_json_1.default.telemetry.offsets.sequence, // 2 bytes, little-endian
|
|
109
|
-
PHASE: protocol_json_1.default.telemetry.offsets.phase, // 1 byte
|
|
110
|
-
POSITION: protocol_json_1.default.telemetry.offsets.position, // 2 bytes, little-endian unsigned
|
|
111
|
-
FORCE: protocol_json_1.default.telemetry.offsets.force, // 2 bytes, little-endian signed
|
|
112
|
-
VELOCITY: protocol_json_1.default.telemetry.offsets.velocity, // 2 bytes, little-endian unsigned
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
* Movement phase during workout.
|
|
116
|
-
* Values match protocol.json telemetry.phases.
|
|
117
|
-
*/
|
|
118
|
-
var MovementPhase;
|
|
119
|
-
(function (MovementPhase) {
|
|
120
|
-
MovementPhase[MovementPhase["IDLE"] = 0] = "IDLE";
|
|
121
|
-
MovementPhase[MovementPhase["CONCENTRIC"] = 1] = "CONCENTRIC";
|
|
122
|
-
MovementPhase[MovementPhase["HOLD"] = 2] = "HOLD";
|
|
123
|
-
MovementPhase[MovementPhase["ECCENTRIC"] = 3] = "ECCENTRIC";
|
|
124
|
-
MovementPhase[MovementPhase["UNKNOWN"] = -1] = "UNKNOWN";
|
|
125
|
-
})(MovementPhase || (exports.MovementPhase = MovementPhase = {}));
|
|
126
|
-
/**
|
|
127
|
-
* Human-readable phase names.
|
|
128
|
-
*/
|
|
129
|
-
exports.PhaseNames = {
|
|
130
|
-
[MovementPhase.IDLE]: 'Idle',
|
|
131
|
-
[MovementPhase.CONCENTRIC]: 'Pulling',
|
|
132
|
-
[MovementPhase.HOLD]: 'Hold',
|
|
133
|
-
[MovementPhase.ECCENTRIC]: 'Lowering',
|
|
134
|
-
[MovementPhase.UNKNOWN]: 'Unknown',
|
|
135
|
-
};
|
|
136
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/voltra/protocol/constants.ts"],"names":[],"mappings":"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"}
|