@voltras/node-sdk 0.1.2 → 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.
Files changed (158) hide show
  1. package/README.md +122 -31
  2. package/dist/cjs/bluetooth/adapters/native.js +36 -34
  3. package/dist/cjs/bluetooth/adapters/native.js.map +1 -1
  4. package/dist/cjs/bluetooth/adapters/node.js +9 -7
  5. package/dist/cjs/bluetooth/adapters/node.js.map +1 -1
  6. package/dist/cjs/bluetooth/adapters/web-bluetooth-base.js +6 -4
  7. package/dist/cjs/bluetooth/adapters/web-bluetooth-base.js.map +1 -1
  8. package/dist/cjs/bluetooth/adapters/web.js +7 -5
  9. package/dist/cjs/bluetooth/adapters/web.js.map +1 -1
  10. package/dist/cjs/bluetooth/controllers/scanner-controller.js +0 -2
  11. package/dist/cjs/bluetooth/controllers/scanner-controller.js.map +1 -1
  12. package/dist/cjs/index.js +19 -10
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/react/hooks.js +2 -6
  15. package/dist/cjs/react/hooks.js.map +1 -1
  16. package/dist/cjs/sdk/notification-dispatcher.js +47 -0
  17. package/dist/cjs/sdk/notification-dispatcher.js.map +1 -0
  18. package/dist/cjs/sdk/reconnect-handler.js +61 -0
  19. package/dist/cjs/sdk/reconnect-handler.js.map +1 -0
  20. package/dist/cjs/sdk/voltra-client.js +206 -72
  21. package/dist/cjs/sdk/voltra-client.js.map +1 -1
  22. package/dist/cjs/shared/index.js +5 -1
  23. package/dist/cjs/shared/index.js.map +1 -1
  24. package/dist/cjs/shared/logger.js +54 -0
  25. package/dist/cjs/shared/logger.js.map +1 -0
  26. package/dist/cjs/voltra/index.js +15 -12
  27. package/dist/cjs/voltra/index.js.map +1 -1
  28. package/dist/cjs/voltra/models/device.js +13 -0
  29. package/dist/cjs/voltra/models/device.js.map +1 -1
  30. package/dist/cjs/voltra/protocol/commands.js +127 -210
  31. package/dist/cjs/voltra/protocol/commands.js.map +1 -1
  32. package/dist/cjs/voltra/protocol/constants/ble-config.js +24 -0
  33. package/dist/cjs/voltra/protocol/constants/ble-config.js.map +1 -0
  34. package/dist/cjs/voltra/protocol/constants/connection-commands.js +55 -0
  35. package/dist/cjs/voltra/protocol/constants/connection-commands.js.map +1 -0
  36. package/dist/cjs/voltra/protocol/constants/enums.js +117 -0
  37. package/dist/cjs/voltra/protocol/constants/enums.js.map +1 -0
  38. package/dist/cjs/voltra/protocol/constants/index.js +32 -0
  39. package/dist/cjs/voltra/protocol/constants/index.js.map +1 -0
  40. package/dist/cjs/voltra/protocol/constants/message-types.js +70 -0
  41. package/dist/cjs/voltra/protocol/constants/message-types.js.map +1 -0
  42. package/dist/cjs/voltra/protocol/constants/timing.js +21 -0
  43. package/dist/cjs/voltra/protocol/constants/timing.js.map +1 -0
  44. package/dist/cjs/voltra/protocol/data/protocol-data.generated.js +7 -0
  45. package/dist/cjs/voltra/protocol/data/protocol-data.generated.js.map +1 -0
  46. package/dist/cjs/voltra/protocol/telemetry-decoder.js +122 -6
  47. package/dist/cjs/voltra/protocol/telemetry-decoder.js.map +1 -1
  48. package/dist/cjs/voltra/protocol/types.js +9 -0
  49. package/dist/cjs/voltra/protocol/types.js.map +1 -0
  50. package/dist/esm/bluetooth/adapters/native.js +36 -34
  51. package/dist/esm/bluetooth/adapters/native.js.map +1 -1
  52. package/dist/esm/bluetooth/adapters/node.js +9 -7
  53. package/dist/esm/bluetooth/adapters/node.js.map +1 -1
  54. package/dist/esm/bluetooth/adapters/web-bluetooth-base.js +6 -4
  55. package/dist/esm/bluetooth/adapters/web-bluetooth-base.js.map +1 -1
  56. package/dist/esm/bluetooth/adapters/web.js +7 -5
  57. package/dist/esm/bluetooth/adapters/web.js.map +1 -1
  58. package/dist/esm/bluetooth/controllers/scanner-controller.js +0 -2
  59. package/dist/esm/bluetooth/controllers/scanner-controller.js.map +1 -1
  60. package/dist/esm/index.js +3 -6
  61. package/dist/esm/index.js.map +1 -1
  62. package/dist/esm/react/hooks.js +1 -5
  63. package/dist/esm/react/hooks.js.map +1 -1
  64. package/dist/esm/sdk/notification-dispatcher.js +44 -0
  65. package/dist/esm/sdk/notification-dispatcher.js.map +1 -0
  66. package/dist/esm/sdk/reconnect-handler.js +57 -0
  67. package/dist/esm/sdk/reconnect-handler.js.map +1 -0
  68. package/dist/esm/sdk/voltra-client.js +204 -70
  69. package/dist/esm/sdk/voltra-client.js.map +1 -1
  70. package/dist/esm/shared/index.js +1 -0
  71. package/dist/esm/shared/index.js.map +1 -1
  72. package/dist/esm/shared/logger.js +49 -0
  73. package/dist/esm/shared/logger.js.map +1 -0
  74. package/dist/esm/voltra/index.js +3 -8
  75. package/dist/esm/voltra/index.js.map +1 -1
  76. package/dist/esm/voltra/models/device.js +13 -0
  77. package/dist/esm/voltra/models/device.js.map +1 -1
  78. package/dist/esm/voltra/protocol/commands.js +117 -209
  79. package/dist/esm/voltra/protocol/commands.js.map +1 -1
  80. package/dist/esm/voltra/protocol/constants/ble-config.js +18 -0
  81. package/dist/esm/voltra/protocol/constants/ble-config.js.map +1 -0
  82. package/dist/esm/voltra/protocol/constants/connection-commands.js +49 -0
  83. package/dist/esm/voltra/protocol/constants/connection-commands.js.map +1 -0
  84. package/dist/esm/voltra/protocol/constants/enums.js +114 -0
  85. package/dist/esm/voltra/protocol/constants/enums.js.map +1 -0
  86. package/dist/esm/voltra/protocol/constants/index.js +12 -0
  87. package/dist/esm/voltra/protocol/constants/index.js.map +1 -0
  88. package/dist/esm/voltra/protocol/constants/message-types.js +64 -0
  89. package/dist/esm/voltra/protocol/constants/message-types.js.map +1 -0
  90. package/dist/esm/voltra/protocol/constants/timing.js +18 -0
  91. package/dist/esm/voltra/protocol/constants/timing.js.map +1 -0
  92. package/dist/esm/voltra/protocol/data/protocol-data.generated.js +5 -0
  93. package/dist/esm/voltra/protocol/data/protocol-data.generated.js.map +1 -0
  94. package/dist/esm/voltra/protocol/telemetry-decoder.js +124 -8
  95. package/dist/esm/voltra/protocol/telemetry-decoder.js.map +1 -1
  96. package/dist/esm/voltra/protocol/types.js +8 -0
  97. package/dist/esm/voltra/protocol/types.js.map +1 -0
  98. package/dist/types/bluetooth/adapters/native.d.ts.map +1 -1
  99. package/dist/types/bluetooth/adapters/node.d.ts.map +1 -1
  100. package/dist/types/bluetooth/adapters/web-bluetooth-base.d.ts.map +1 -1
  101. package/dist/types/bluetooth/adapters/web.d.ts.map +1 -1
  102. package/dist/types/bluetooth/controllers/scanner-controller.d.ts.map +1 -1
  103. package/dist/types/index.d.ts +4 -3
  104. package/dist/types/index.d.ts.map +1 -1
  105. package/dist/types/react/hooks.d.ts.map +1 -1
  106. package/dist/types/sdk/index.d.ts +2 -1
  107. package/dist/types/sdk/index.d.ts.map +1 -1
  108. package/dist/types/sdk/notification-dispatcher.d.ts +29 -0
  109. package/dist/types/sdk/notification-dispatcher.d.ts.map +1 -0
  110. package/dist/types/sdk/reconnect-handler.d.ts +55 -0
  111. package/dist/types/sdk/reconnect-handler.d.ts.map +1 -0
  112. package/dist/types/sdk/types.d.ts +35 -0
  113. package/dist/types/sdk/types.d.ts.map +1 -1
  114. package/dist/types/sdk/voltra-client.d.ts +77 -2
  115. package/dist/types/sdk/voltra-client.d.ts.map +1 -1
  116. package/dist/types/shared/index.d.ts +1 -0
  117. package/dist/types/shared/index.d.ts.map +1 -1
  118. package/dist/types/shared/logger.d.ts +39 -0
  119. package/dist/types/shared/logger.d.ts.map +1 -0
  120. package/dist/types/voltra/index.d.ts +3 -3
  121. package/dist/types/voltra/index.d.ts.map +1 -1
  122. package/dist/types/voltra/models/device.d.ts +11 -1
  123. package/dist/types/voltra/models/device.d.ts.map +1 -1
  124. package/dist/types/voltra/protocol/commands.d.ts +47 -87
  125. package/dist/types/voltra/protocol/commands.d.ts.map +1 -1
  126. package/dist/types/voltra/protocol/constants/ble-config.d.ts +16 -0
  127. package/dist/types/voltra/protocol/constants/ble-config.d.ts.map +1 -0
  128. package/dist/types/voltra/protocol/constants/connection-commands.d.ts +37 -0
  129. package/dist/types/voltra/protocol/constants/connection-commands.d.ts.map +1 -0
  130. package/dist/types/voltra/protocol/constants/enums.d.ts +72 -0
  131. package/dist/types/voltra/protocol/constants/enums.d.ts.map +1 -0
  132. package/dist/types/voltra/protocol/constants/index.d.ts +12 -0
  133. package/dist/types/voltra/protocol/constants/index.d.ts.map +1 -0
  134. package/dist/types/voltra/protocol/constants/message-types.d.ts +52 -0
  135. package/dist/types/voltra/protocol/constants/message-types.d.ts.map +1 -0
  136. package/dist/types/voltra/protocol/constants/timing.d.ts +18 -0
  137. package/dist/types/voltra/protocol/constants/timing.d.ts.map +1 -0
  138. package/dist/types/voltra/protocol/data/protocol-data.generated.d.ts +3 -0
  139. package/dist/types/voltra/protocol/data/protocol-data.generated.d.ts.map +1 -0
  140. package/dist/types/voltra/protocol/telemetry-decoder.d.ts +15 -2
  141. package/dist/types/voltra/protocol/telemetry-decoder.d.ts.map +1 -1
  142. package/dist/types/voltra/protocol/types.d.ts +247 -0
  143. package/dist/types/voltra/protocol/types.d.ts.map +1 -0
  144. package/package.json +8 -7
  145. package/dist/cjs/voltra/protocol/constants.js +0 -136
  146. package/dist/cjs/voltra/protocol/constants.js.map +0 -1
  147. package/dist/cjs/voltra/protocol/data/chains.json +0 -830
  148. package/dist/cjs/voltra/protocol/data/eccentric.json +0 -1598
  149. package/dist/cjs/voltra/protocol/data/protocol.json +0 -54
  150. package/dist/cjs/voltra/protocol/data/weights.json +0 -62
  151. package/dist/esm/voltra/protocol/constants.js +0 -130
  152. package/dist/esm/voltra/protocol/constants.js.map +0 -1
  153. package/dist/esm/voltra/protocol/data/chains.json +0 -830
  154. package/dist/esm/voltra/protocol/data/eccentric.json +0 -1598
  155. package/dist/esm/voltra/protocol/data/protocol.json +0 -54
  156. package/dist/esm/voltra/protocol/data/weights.json +0 -62
  157. package/dist/types/voltra/protocol/constants.d.ts +0 -103
  158. package/dist/types/voltra/protocol/constants.d.ts.map +0 -1
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SDK Logger
3
+ *
4
+ * Scoped, opt-in debug logging for SDK internals.
5
+ * Silent by default — consumers enable via `setDebugEnabled(true)`.
6
+ *
7
+ * Usage:
8
+ * const log = createLogger('NativeBLE');
9
+ * log.debug('Starting scan...'); // [NativeBLE] Starting scan...
10
+ * log.warn('MTU request failed'); // [NativeBLE] MTU request failed
11
+ * log.error('Connect error:', error); // [NativeBLE] Connect error: ...
12
+ */
13
+ let debugEnabled = false;
14
+ /**
15
+ * Enable or disable SDK debug logging.
16
+ * When disabled (default), only warnings and errors are emitted.
17
+ */
18
+ export function setDebugEnabled(enabled) {
19
+ debugEnabled = enabled;
20
+ }
21
+ /**
22
+ * Check if debug logging is enabled.
23
+ */
24
+ export function isDebugEnabled() {
25
+ return debugEnabled;
26
+ }
27
+ /**
28
+ * Create a scoped logger for a module.
29
+ *
30
+ * @param tag Module name shown in brackets, e.g. 'NativeBLE'
31
+ */
32
+ export function createLogger(tag) {
33
+ const prefix = `[${tag}]`;
34
+ return {
35
+ debug: (...args) => {
36
+ if (debugEnabled) {
37
+ // eslint-disable-next-line no-console
38
+ console.log(prefix, ...args);
39
+ }
40
+ },
41
+ warn: (...args) => {
42
+ console.warn(prefix, ...args);
43
+ },
44
+ error: (...args) => {
45
+ console.error(prefix, ...args);
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/shared/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC;AACtB,CAAC;AAcD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;IAE1B,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;YAC5B,IAAI,YAAY,EAAE,CAAC;gBACjB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -3,11 +3,6 @@
3
3
  *
4
4
  * Voltra device management, telemetry processing, and workout control.
5
5
  */
6
- // =============================================================================
7
- // Models
8
- // =============================================================================
9
- // Device model
10
- export { VoltraDevice, DEFAULT_SETTINGS, } from './models/device';
11
6
  // Connection model
12
7
  export { isValidVoltraTransition, VoltraConnectionStateModel, } from './models/connection';
13
8
  // Device filter
@@ -17,10 +12,10 @@ export { createFrame, isActivePhase, isConcentricPhase, isEccentricPhase, } from
17
12
  // =============================================================================
18
13
  // Protocol
19
14
  // =============================================================================
20
- // Command builders
21
- export { WeightCommands, ChainsCommands, EccentricCommands, } from './protocol/commands';
15
+ // Command lookup functions
16
+ export { getWeightCommand, getChainsCommand, getEccentricCommand, getModeCommand, getAvailableWeights, getAvailableChains, getAvailableEccentric, getAvailableModes, } from './protocol/commands';
22
17
  // Protocol constants
23
- export { MessageTypes, TelemetryOffsets, Timing, Auth, Init, Workout, BLE, MovementPhase, PhaseNames, } from './protocol/constants';
18
+ export { MessageTypes, TelemetryOffsets, Timing, Auth, Init, Workout, BLE, MovementPhase, PhaseNames, ParameterId, ParameterNames, TrainingMode, TrainingModeNames, VALID_TRAINING_MODES, } from './protocol/constants';
24
19
  // Telemetry decoder (low-level)
25
20
  export { decodeNotification, decodeTelemetryFrame, encodeTelemetryFrame, identifyMessageType, } from './protocol/telemetry-decoder';
26
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/voltra/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,eAAe;AACf,OAAO,EACL,YAAY,EACZ,gBAAgB,GAIjB,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EAEL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEnG,mBAAmB;AACnB,OAAO,EAEL,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAE7B,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,GAAG,EACH,aAAa,EACb,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,gCAAgC;AAChC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/voltra/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,mBAAmB;AACnB,OAAO,EAEL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEnG,mBAAmB;AACnB,OAAO,EAEL,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,GAAG,EACH,aAAa,EACb,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,gCAAgC;AAChC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,8BAA8B,CAAC"}
@@ -3,13 +3,17 @@
3
3
  *
4
4
  * Represents a Voltra device with its identity, settings, and connection state.
5
5
  */
6
+ import { TrainingMode } from '../protocol/constants';
6
7
  /**
7
8
  * Default settings for a new device.
8
9
  */
9
10
  export const DEFAULT_SETTINGS = {
10
11
  weight: 0,
11
12
  chains: 0,
13
+ inverseChains: 0,
12
14
  eccentric: 0,
15
+ mode: TrainingMode.Idle,
16
+ battery: null,
13
17
  };
14
18
  /**
15
19
  * Voltra device model.
@@ -49,6 +53,15 @@ export class VoltraDevice {
49
53
  get eccentric() {
50
54
  return this._settings.eccentric;
51
55
  }
56
+ get inverseChains() {
57
+ return this._settings.inverseChains;
58
+ }
59
+ get mode() {
60
+ return this._settings.mode;
61
+ }
62
+ get battery() {
63
+ return this._settings.battery;
64
+ }
52
65
  get connectionState() {
53
66
  return this._connectionState;
54
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../../../src/voltra/models/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../../../src/voltra/models/device.ts"],"names":[],"mappings":"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"}
@@ -1,224 +1,132 @@
1
1
  /**
2
- * Voltra Protocol Command Builders
2
+ * Voltra Protocol Commands
3
3
  *
4
- * Builds commands for setting weight, chains, and eccentric resistance.
4
+ * Simple key-value mapping from operations to commands.
5
+ * Commands are loaded from the consolidated protocol.json.
6
+ * All commands are pre-computed lookup values.
5
7
  */
6
8
  import { hexToBytes } from '../../shared/utils';
7
- import weightsData from './data/weights.json';
8
- import chainsData from './data/chains.json';
9
- import eccentricData from './data/eccentric.json';
10
- // Type the JSON imports
11
- const weights = weightsData;
12
- const chains = chainsData;
13
- const eccentric = eccentricData;
9
+ import { TrainingMode, VALID_TRAINING_MODES } from './constants';
10
+ import protocolData from './data/protocol-data.generated';
11
+ // Type the imported data
12
+ const protocol = protocolData;
14
13
  // =============================================================================
15
- // Weight Commands (863e register)
14
+ // Command Maps (initialized from protocol.json)
16
15
  // =============================================================================
16
+ /** Weight commands map (5-200 lbs) */
17
+ const weightCommands = {};
18
+ /** Chains commands map (0-100 lbs) */
19
+ const chainsCommands = {};
20
+ /** Eccentric commands map (-195 to +195) */
21
+ const eccentricCommands = {};
22
+ /** Inverse chains commands map (0-100 lbs) */
23
+ const inverseChainsCommands = {};
24
+ // Initialize from consolidated protocol.json
25
+ for (const [lbs, hex] of Object.entries(protocol.commands.weights)) {
26
+ weightCommands[Number(lbs)] = hexToBytes(hex);
27
+ }
28
+ for (const [lbs, hex] of Object.entries(protocol.commands.chains)) {
29
+ chainsCommands[Number(lbs)] = hexToBytes(hex);
30
+ }
31
+ for (const [value, hex] of Object.entries(protocol.commands.eccentric)) {
32
+ eccentricCommands[Number(value)] = hexToBytes(hex);
33
+ }
34
+ for (const [lbs, hex] of Object.entries(protocol.commands.inverseChains)) {
35
+ inverseChainsCommands[Number(lbs)] = hexToBytes(hex);
36
+ }
37
+ // =============================================================================
38
+ // Lookup Functions
39
+ // =============================================================================
40
+ /**
41
+ * Get weight command for specified pounds.
42
+ * @param lbs Weight in pounds (5-200)
43
+ * @returns Command bytes, or null if not available
44
+ */
45
+ export function getWeightCommand(lbs) {
46
+ return weightCommands[lbs] || null;
47
+ }
48
+ /**
49
+ * Get chains command for specified pounds.
50
+ * @param lbs Chains weight in pounds (0-100)
51
+ * @returns Command bytes, or null if not available
52
+ */
53
+ export function getChainsCommand(lbs) {
54
+ return chainsCommands[lbs] || null;
55
+ }
56
+ /**
57
+ * Get eccentric command for specified value.
58
+ * @param value Eccentric adjustment (-195 to +195)
59
+ * @returns Command bytes, or null if not available
60
+ */
61
+ export function getEccentricCommand(value) {
62
+ return eccentricCommands[value] || null;
63
+ }
17
64
  /**
18
- * Weight command builder for 5-200 lbs in 5 lb increments.
65
+ * Get available weight values.
19
66
  */
20
- export const WeightCommands = {
21
- MIN: 5,
22
- MAX: 200,
23
- INCREMENT: 5,
24
- /** Get available weight values */
25
- getAvailable() {
26
- return Object.keys(weights.values)
27
- .map(Number)
28
- .sort((a, b) => a - b);
29
- },
30
- /** Check if a weight value is valid */
31
- isValid(pounds) {
32
- return pounds >= this.MIN && pounds <= this.MAX && pounds % this.INCREMENT === 0;
33
- },
34
- /**
35
- * Get the command to set a specific weight.
36
- * @param pounds Weight in pounds (5-200 in increments of 5)
37
- * @returns 21-byte command, or null if weight not available
38
- */
39
- get(pounds) {
40
- const key = String(pounds);
41
- const values = weights.values;
42
- const format = weights.format;
43
- if (!(key in values)) {
44
- return null;
45
- }
46
- const data = values[key];
47
- return this._build(pounds, data.seq, data.checksum, format);
48
- },
49
- _build(pounds, seq, checksum, format) {
50
- const cmd = new Uint8Array(21);
51
- let offset = 0;
52
- // Prefix
53
- const prefix = hexToBytes(format.prefix);
54
- cmd.set(prefix, offset);
55
- offset += prefix.length;
56
- // Sequence
57
- const seqBytes = hexToBytes(seq);
58
- cmd.set(seqBytes, offset);
59
- offset += seqBytes.length;
60
- // Mode
61
- const mode = hexToBytes(format.mode);
62
- cmd.set(mode, offset);
63
- offset += mode.length;
64
- // Register
65
- const register = hexToBytes(format.register);
66
- cmd.set(register, offset);
67
- offset += register.length;
68
- // Value (little-endian uint16)
69
- cmd[offset] = pounds & 0xff;
70
- cmd[offset + 1] = (pounds >> 8) & 0xff;
71
- offset += 2;
72
- // Checksum
73
- const checksumBytes = hexToBytes(checksum);
74
- cmd.set(checksumBytes, offset);
75
- offset += checksumBytes.length;
76
- // Padding
77
- const padding = hexToBytes(format.padding);
78
- cmd.set(padding, offset);
79
- return cmd;
80
- },
81
- };
67
+ export function getAvailableWeights() {
68
+ return Object.keys(weightCommands)
69
+ .map(Number)
70
+ .sort((a, b) => a - b);
71
+ }
82
72
  /**
83
- * Chains (reverse resistance) command builder for 0-100 lbs.
84
- * Requires dual commands: send step1, wait 500ms, send step2.
73
+ * Get available chains values.
85
74
  */
86
- export const ChainsCommands = {
87
- MIN: 0,
88
- MAX: 100,
89
- /** Get available chains values */
90
- getAvailable() {
91
- return Object.keys(chains.values)
92
- .map(Number)
93
- .sort((a, b) => a - b);
94
- },
95
- /** Check if a chains value is valid */
96
- isValid(pounds) {
97
- return pounds >= this.MIN && pounds <= this.MAX;
98
- },
99
- /**
100
- * Get dual commands to set chains weight.
101
- * @param pounds Chains weight (0-100)
102
- * @returns Tuple of (step1, step2) commands, or null if not available
103
- */
104
- get(pounds) {
105
- const key = String(pounds);
106
- const values = chains.values;
107
- const format = chains.format;
108
- if (!(key in values)) {
109
- return null;
110
- }
111
- const data = values[key];
112
- return {
113
- step1: this._build(pounds, 1, data.step1_seq, data.step1_checksum, format),
114
- step2: this._build(pounds, 2, data.step2_seq, data.step2_checksum, format),
115
- };
116
- },
117
- _build(pounds, step, seq, checksum, format) {
118
- const fmt = format[`step${step}`];
119
- const cmd = new Uint8Array(21);
120
- let offset = 0;
121
- // Prefix
122
- const prefix = hexToBytes(fmt.prefix);
123
- cmd.set(prefix, offset);
124
- offset += prefix.length;
125
- // Sequence
126
- const seqBytes = hexToBytes(seq);
127
- cmd.set(seqBytes, offset);
128
- offset += seqBytes.length;
129
- // Mode
130
- const mode = hexToBytes(fmt.mode);
131
- cmd.set(mode, offset);
132
- offset += mode.length;
133
- // Register
134
- const register = hexToBytes(fmt.register);
135
- cmd.set(register, offset);
136
- offset += register.length;
137
- // Value (little-endian uint16)
138
- cmd[offset] = pounds & 0xff;
139
- cmd[offset + 1] = (pounds >> 8) & 0xff;
140
- offset += 2;
141
- // Checksum
142
- const checksumBytes = hexToBytes(checksum);
143
- cmd.set(checksumBytes, offset);
144
- offset += checksumBytes.length;
145
- // Padding
146
- const padding = hexToBytes(fmt.padding);
147
- cmd.set(padding, offset);
148
- return cmd;
149
- },
150
- };
75
+ export function getAvailableChains() {
76
+ return Object.keys(chainsCommands)
77
+ .map(Number)
78
+ .sort((a, b) => a - b);
79
+ }
80
+ /**
81
+ * Get available eccentric values.
82
+ */
83
+ export function getAvailableEccentric() {
84
+ return Object.keys(eccentricCommands)
85
+ .map(Number)
86
+ .sort((a, b) => a - b);
87
+ }
88
+ /**
89
+ * Get inverse chains command for specified pounds.
90
+ * @param lbs Inverse chains weight in pounds (0-100)
91
+ * @returns Command bytes, or null if not available
92
+ */
93
+ export function getInverseChainsCommand(lbs) {
94
+ return inverseChainsCommands[lbs] || null;
95
+ }
96
+ /**
97
+ * Get available inverse chains values.
98
+ */
99
+ export function getAvailableInverseChains() {
100
+ return Object.keys(inverseChainsCommands)
101
+ .map(Number)
102
+ .sort((a, b) => a - b);
103
+ }
151
104
  // =============================================================================
152
- // Eccentric Commands (883e register)
105
+ // Mode Setting Commands
153
106
  // =============================================================================
107
+ /** Mode commands map (TrainingMode -> Uint8Array) */
108
+ const modeCommands = new Map([
109
+ [TrainingMode.Idle, hexToBytes(protocol.commands.modes.idle)],
110
+ [TrainingMode.WeightTraining, hexToBytes(protocol.commands.modes.weightTraining)],
111
+ [TrainingMode.ResistanceBand, hexToBytes(protocol.commands.modes.resistanceBand)],
112
+ [TrainingMode.Rowing, hexToBytes(protocol.commands.modes.rowing)],
113
+ [TrainingMode.Damper, hexToBytes(protocol.commands.modes.damper)],
114
+ [TrainingMode.CustomCurves, hexToBytes(protocol.commands.modes.customCurves)],
115
+ [TrainingMode.Isokinetic, hexToBytes(protocol.commands.modes.isokinetic)],
116
+ [TrainingMode.Isometric, hexToBytes(protocol.commands.modes.isometric)],
117
+ ]);
118
+ /**
119
+ * Get mode command for specified training mode.
120
+ * @param mode Training mode to set
121
+ * @returns Command bytes, or null if invalid mode
122
+ */
123
+ export function getModeCommand(mode) {
124
+ return modeCommands.get(mode) || null;
125
+ }
154
126
  /**
155
- * Eccentric load adjustment command builder for -195 to +195.
156
- * Requires dual commands: send step1, wait 500ms, send step2.
127
+ * Get available training modes.
157
128
  */
158
- export const EccentricCommands = {
159
- MIN: -195,
160
- MAX: 195,
161
- /** Get available eccentric values */
162
- getAvailable() {
163
- return Object.keys(eccentric.step1.checksums)
164
- .map(Number)
165
- .sort((a, b) => a - b);
166
- },
167
- /** Check if an eccentric value is valid */
168
- isValid(value) {
169
- return value >= this.MIN && value <= this.MAX;
170
- },
171
- /**
172
- * Get dual commands to set eccentric load.
173
- * @param value Eccentric adjustment (-195 to +195)
174
- * @returns Tuple of (step1, step2) commands, or null if not available
175
- */
176
- get(value) {
177
- const key = String(value);
178
- if (!(key in eccentric.step1.checksums)) {
179
- return null;
180
- }
181
- return {
182
- step1: this._build(value, 1),
183
- step2: this._build(value, 2),
184
- };
185
- },
186
- _build(value, step) {
187
- const stepKey = `step${step}`;
188
- const fmt = eccentric.format[stepKey];
189
- const seq = eccentric[stepKey].sequences[String(value)];
190
- const checksum = eccentric[stepKey].checksums[String(value)];
191
- const cmd = new Uint8Array(21);
192
- let offset = 0;
193
- // Prefix
194
- const prefix = hexToBytes(fmt.prefix);
195
- cmd.set(prefix, offset);
196
- offset += prefix.length;
197
- // Sequence
198
- const seqBytes = hexToBytes(seq);
199
- cmd.set(seqBytes, offset);
200
- offset += seqBytes.length;
201
- // Mode
202
- const mode = hexToBytes(fmt.mode);
203
- cmd.set(mode, offset);
204
- offset += mode.length;
205
- // Register
206
- const register = hexToBytes(fmt.register);
207
- cmd.set(register, offset);
208
- offset += register.length;
209
- // Value (little-endian int16, signed)
210
- const signedValue = value < 0 ? 0x10000 + value : value;
211
- cmd[offset] = signedValue & 0xff;
212
- cmd[offset + 1] = (signedValue >> 8) & 0xff;
213
- offset += 2;
214
- // Checksum
215
- const checksumBytes = hexToBytes(checksum);
216
- cmd.set(checksumBytes, offset);
217
- offset += checksumBytes.length;
218
- // Padding
219
- const padding = hexToBytes(fmt.padding);
220
- cmd.set(padding, offset);
221
- return cmd;
222
- },
223
- };
129
+ export function getAvailableModes() {
130
+ return [...VALID_TRAINING_MODES];
131
+ }
224
132
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/voltra/protocol/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/voltra/protocol/commands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,YAAY,MAAM,gCAAgC,CAAC;AAG1D,yBAAyB;AACzB,MAAM,QAAQ,GAAG,YAA4B,CAAC;AAE9C,gFAAgF;AAChF,gDAAgD;AAChD,gFAAgF;AAEhF,sCAAsC;AACtC,MAAM,cAAc,GAA+B,EAAE,CAAC;AAEtD,sCAAsC;AACtC,MAAM,cAAc,GAA+B,EAAE,CAAC;AAEtD,4CAA4C;AAC5C,MAAM,iBAAiB,GAA+B,EAAE,CAAC;AAEzD,8CAA8C;AAC9C,MAAM,qBAAqB,GAA+B,EAAE,CAAC;AAE7D,6CAA6C;AAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAClE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACvE,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACzE,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;SAC/B,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;SAC/B,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAClC,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;SACtC,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,qDAAqD;AACrD,MAAM,YAAY,GAAkC,IAAI,GAAG,CAAC;IAC1D,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACjF,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACjF,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzE,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CACxE,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * BLE Configuration
3
+ *
4
+ * Service UUIDs, characteristic UUIDs, and device naming for Voltra devices.
5
+ */
6
+ import protocolData from '../data/protocol-data.generated';
7
+ const protocol = protocolData;
8
+ export const BLE = {
9
+ /** Main service UUID for Voltra devices */
10
+ SERVICE_UUID: protocol.ble.serviceUuid,
11
+ /** Characteristic for receiving notifications */
12
+ NOTIFY_CHAR_UUID: protocol.ble.notifyCharUuid,
13
+ /** Characteristic for writing commands */
14
+ WRITE_CHAR_UUID: protocol.ble.writeCharUuid,
15
+ /** Device name prefix for scanning (e.g., "VTR-") */
16
+ DEVICE_NAME_PREFIX: protocol.ble.deviceNamePrefix,
17
+ };
18
+ //# sourceMappingURL=ble-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ble-config.js","sourceRoot":"","sources":["../../../../../src/voltra/protocol/constants/ble-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAG3D,MAAM,QAAQ,GAAG,YAA4B,CAAC;AAE9C,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,2CAA2C;IAC3C,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW;IACtC,iDAAiD;IACjD,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc;IAC7C,0CAA0C;IAC1C,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa;IAC3C,qDAAqD;IACrD,kBAAkB,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB;CACzC,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Connection Commands
3
+ *
4
+ * Authentication, initialization, and workout control commands.
5
+ */
6
+ import { hexToBytes } from '../../../shared/utils';
7
+ import protocolData from '../data/protocol-data.generated';
8
+ const protocol = protocolData;
9
+ // =============================================================================
10
+ // Authentication
11
+ // =============================================================================
12
+ /**
13
+ * Device authentication identifiers.
14
+ */
15
+ export const Auth = {
16
+ /** Primary device identity */
17
+ DEVICE_ID: hexToBytes(protocol.commands.auth.iphone),
18
+ /** Alternative device identity */
19
+ DEVICE_ID_IPAD: hexToBytes(protocol.commands.auth.ipad),
20
+ };
21
+ // =============================================================================
22
+ // Initialization
23
+ // =============================================================================
24
+ /**
25
+ * Device initialization sequence.
26
+ */
27
+ export const Init = {
28
+ SEQUENCE: protocol.commands.init.map(hexToBytes),
29
+ };
30
+ // =============================================================================
31
+ // Workout Commands
32
+ // =============================================================================
33
+ /**
34
+ * Workout control commands.
35
+ *
36
+ * To start: set weight -> PREPARE -> SETUP -> GO
37
+ * To stop: STOP
38
+ */
39
+ export const Workout = {
40
+ /** Prepare device for workout */
41
+ PREPARE: hexToBytes(protocol.commands.workout.prepare),
42
+ /** Configure workout mode */
43
+ SETUP: hexToBytes(protocol.commands.workout.setup),
44
+ /** Start resistance/tracking */
45
+ GO: hexToBytes(protocol.commands.workout.go),
46
+ /** Stop resistance/tracking */
47
+ STOP: hexToBytes(protocol.commands.workout.stop),
48
+ };
49
+ //# sourceMappingURL=connection-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-commands.js","sourceRoot":"","sources":["../../../../../src/voltra/protocol/constants/connection-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAG3D,MAAM,QAAQ,GAAG,YAA4B,CAAC;AAE9C,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,8BAA8B;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IACpD,kCAAkC;IAClC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;CAC/C,CAAC;AAEX,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;CACxC,CAAC;AAEX,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,iCAAiC;IACjC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;IACtD,6BAA6B;IAC7B,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD,gCAAgC;IAChC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,+BAA+B;IAC/B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;CACxC,CAAC"}