incyclist-services 1.2.0 → 1.2.1

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.
@@ -27,7 +27,6 @@ export declare class DeviceConfigurationService extends EventEmitter {
27
27
  protected logError(err: Error, fn: string): void;
28
28
  init(): Promise<void>;
29
29
  setFeature(name: string, enabled: boolean): void;
30
- protected isNewUi(): boolean;
31
30
  protected verifyCapabilityExists(capability: any): void;
32
31
  protected verifyCapabilitySettings(): void;
33
32
  protected initCapabilties(): void;
@@ -106,9 +106,6 @@ class DeviceConfigurationService extends events_1.default {
106
106
  setFeature(name, enabled) {
107
107
  this.features[name] = enabled;
108
108
  }
109
- isNewUi() {
110
- return this.features['NEW_UI'] === true;
111
- }
112
109
  verifyCapabilityExists(capability) {
113
110
  const { capabilities } = this.settings;
114
111
  const found = capabilities.find(c => c.capability === capability);
@@ -117,74 +114,20 @@ class DeviceConfigurationService extends events_1.default {
117
114
  }
118
115
  }
119
116
  verifyCapabilitySettings() {
120
- var _a;
121
117
  const { capabilities } = this.settings;
122
- const isNewUi = this.isNewUi();
123
118
  const bikeCapIdx = capabilities.findIndex(c => c.capability === 'bike');
124
- if (isNewUi) {
125
- this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Control);
126
- this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Power);
127
- this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.HeartRate);
128
- this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Speed);
129
- this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Cadence);
130
- if (bikeCapIdx !== -1) {
131
- capabilities.splice(bikeCapIdx, 1);
132
- }
133
- return;
134
- }
135
- else {
136
- if (bikeCapIdx === -1) {
137
- const control = capabilities.find(c => c.capability === incyclist_devices_1.IncyclistCapability.Control && c.selected !== undefined);
138
- const bike = Object.assign({}, control);
139
- bike.capability = 'bike';
140
- capabilities.push(bike);
141
- }
142
- }
143
- const bikeCap = capabilities.find(c => c.capability === 'bike');
144
- for (const capability of ['bike', incyclist_devices_1.IncyclistCapability.Control]) {
145
- const info = capabilities.find(c => c.capability === capability);
146
- if (((_a = info === null || info === void 0 ? void 0 : info.devices) === null || _a === void 0 ? void 0 : _a.length) > 0 && (info === null || info === void 0 ? void 0 : info.selected) === undefined)
147
- this.select(info.devices[0], capability);
148
- }
149
- if (bikeCap === null || bikeCap === void 0 ? void 0 : bikeCap.selected) {
150
- const bike = bikeCap.selected;
151
- const power = capabilities.find(c => c.capability === incyclist_devices_1.IncyclistCapability.Power && c.selected !== undefined);
152
- const control = capabilities.find(c => c.capability === incyclist_devices_1.IncyclistCapability.Control && c.selected !== undefined);
153
- const speed = capabilities.find(c => c.capability === incyclist_devices_1.IncyclistCapability.Speed && c.selected !== undefined);
154
- const cadence = capabilities.find(c => c.capability === incyclist_devices_1.IncyclistCapability.Cadence && c.selected !== undefined);
155
- const adapter = this.getAdapter(bike);
156
- let changed = false;
157
- const verify = (uuid, cap) => {
158
- if (!uuid && adapter.hasCapability(cap)) {
159
- const setting = capabilities.find(c => c.capability === cap);
160
- if (!setting) {
161
- capabilities.push({ capability: cap, devices: [bike], selected: bike, disabled: false });
162
- changed = true;
163
- }
164
- else {
165
- setting.selected = bike;
166
- if (!setting.devices.includes(bike))
167
- setting.devices.push(bike);
168
- changed = true;
169
- }
170
- }
171
- };
172
- verify(control, incyclist_devices_1.IncyclistCapability.Control);
173
- verify(power, incyclist_devices_1.IncyclistCapability.Power);
174
- verify(speed, incyclist_devices_1.IncyclistCapability.Speed);
175
- verify(cadence, incyclist_devices_1.IncyclistCapability.Cadence);
176
- if (changed) {
177
- this.updateUserSettings();
178
- this.logEvent({ message: 'capability changed after verification', capabilities });
179
- }
119
+ this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Control);
120
+ this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Power);
121
+ this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.HeartRate);
122
+ this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Speed);
123
+ this.verifyCapabilityExists(incyclist_devices_1.IncyclistCapability.Cadence);
124
+ if (bikeCapIdx !== -1) {
125
+ capabilities.splice(bikeCapIdx, 1);
180
126
  }
127
+ return;
181
128
  }
182
129
  initCapabilties() {
183
- const isNewUi = this.isNewUi();
184
130
  const target = [incyclist_devices_1.IncyclistCapability.Control, incyclist_devices_1.IncyclistCapability.Power, incyclist_devices_1.IncyclistCapability.Cadence, incyclist_devices_1.IncyclistCapability.Speed, incyclist_devices_1.IncyclistCapability.HeartRate];
185
- if (!isNewUi) {
186
- target.push('bike');
187
- }
188
131
  if (!this.settings)
189
132
  this.settings = {};
190
133
  if (!this.settings.capabilities)
@@ -213,11 +156,7 @@ class DeviceConfigurationService extends events_1.default {
213
156
  var _a, _b, _c, _d, _e;
214
157
  const { gearSelection, connections, modeSettings = {} } = settings;
215
158
  this.logEvent({ message: 'converting settings.json', gearSelection, connections });
216
- const isNewUi = this.isNewUi();
217
159
  const all = [incyclist_devices_1.IncyclistCapability.Control, incyclist_devices_1.IncyclistCapability.Power, incyclist_devices_1.IncyclistCapability.Cadence, incyclist_devices_1.IncyclistCapability.Speed, incyclist_devices_1.IncyclistCapability.HeartRate];
218
- if (!isNewUi) {
219
- all.push('bike');
220
- }
221
160
  const gears = (0, clone_1.default)(gearSelection || {});
222
161
  const { bikes = [], hrms = [] } = gears;
223
162
  this.settings = { interfaces: [], devices: [], capabilities: [] };
@@ -275,7 +214,7 @@ class DeviceConfigurationService extends events_1.default {
275
214
  this.addToCapability(udid, cc);
276
215
  if (isSelected) {
277
216
  const cap = cc;
278
- if ((!isNewUi && cap === 'bike') || adapter.hasCapability(cap)) {
217
+ if (adapter.hasCapability(cap)) {
279
218
  const selectedDevice = capabilities.find(c => c.capability === cap);
280
219
  selectedDevice.selected = udid;
281
220
  }
@@ -407,8 +346,7 @@ class DeviceConfigurationService extends events_1.default {
407
346
  select(udid, capability, props) {
408
347
  var _a, _b, _c;
409
348
  this.logEvent({ message: 'select device', udid, capability, props });
410
- const isNewUi = this.isNewUi();
411
- const { noRecursive = false, legacy = false, emit = true } = props || {};
349
+ const { emit = true } = props || {};
412
350
  const deviceSettings = (_b = (_a = this.settings.devices) === null || _a === void 0 ? void 0 : _a.find(d => d.udid === udid)) === null || _b === void 0 ? void 0 : _b.settings;
413
351
  if (!deviceSettings)
414
352
  return;
@@ -417,62 +355,13 @@ class DeviceConfigurationService extends events_1.default {
417
355
  this.logEvent({ message: 'error: could not find adapter', fn: 'select', udid, capability, adapters: (_c = Object.keys(this.adapters)) === null || _c === void 0 ? void 0 : _c.join(',') });
418
356
  return;
419
357
  }
420
- if (isNewUi) {
421
- if (capability === 'bike')
422
- return;
423
- this.selectSingleDevice(udid, capability);
424
- if (emit)
425
- this.emitCapabiltyChanged(capability);
426
- this.updateUserSettings();
427
- return;
428
- }
429
- if ((capability === 'bike') && !adapter.isControllable())
358
+ if (capability === 'bike')
430
359
  return;
431
- const isControl = adapter.hasCapability(incyclist_devices_1.IncyclistCapability.Control) || (legacy && !isNewUi && capability === 'bike');
432
360
  this.selectSingleDevice(udid, capability);
433
- this.emitCapabiltyChanged(capability);
434
- if (noRecursive)
435
- return;
436
- if (isControl) {
437
- if (capability !== 'bike' && capability !== incyclist_devices_1.IncyclistCapability.Control) {
438
- if (!isNewUi)
439
- this.select(udid, 'bike', { noRecursive: true, legacy });
440
- this.select(udid, incyclist_devices_1.IncyclistCapability.Control, { noRecursive: true, legacy });
441
- }
442
- else {
443
- if (!isNewUi && capability === 'bike' && isControl) {
444
- this.select(udid, incyclist_devices_1.IncyclistCapability.Control, { noRecursive: true, legacy });
445
- this.select(udid, incyclist_devices_1.IncyclistCapability.Power, { noRecursive: true, legacy });
446
- if (legacy) {
447
- this.select(udid, incyclist_devices_1.IncyclistCapability.Speed, { noRecursive: true, legacy });
448
- this.select(udid, incyclist_devices_1.IncyclistCapability.Cadence, { noRecursive: true, legacy });
449
- }
450
- if (adapter.hasCapability(incyclist_devices_1.IncyclistCapability.HeartRate)) {
451
- const hrm = this.getSelected(incyclist_devices_1.IncyclistCapability.HeartRate);
452
- if (!hrm && !this.isDisabled(incyclist_devices_1.IncyclistCapability.HeartRate)) {
453
- this.select(udid, incyclist_devices_1.IncyclistCapability.HeartRate);
454
- }
455
- else if (hrm && hrm.hasCapability(incyclist_devices_1.IncyclistCapability.Control)) {
456
- this.select(udid, incyclist_devices_1.IncyclistCapability.HeartRate);
457
- }
458
- }
459
- }
460
- const otherCapabilties = this.settings.capabilities.filter(c => c.capability !== 'bike' && c.capability !== incyclist_devices_1.IncyclistCapability.Control && !c.disabled && c.selected !== udid);
461
- const selectedControllable = otherCapabilties.filter(c => { var _a; return c.selected && ((_a = this.adapters[c.selected]) === null || _a === void 0 ? void 0 : _a.hasCapability(incyclist_devices_1.IncyclistCapability.Control)); });
462
- selectedControllable.forEach(c => {
463
- if (adapter.hasCapability(c.capability)) {
464
- this.select(udid, c.capability);
465
- }
466
- else
467
- this.unselect(c.capability);
468
- });
469
- }
470
- }
471
- else if (!isControl && !isNewUi && capability === 'bike') {
472
- this.unselect(incyclist_devices_1.IncyclistCapability.Control);
473
- this.select(udid, incyclist_devices_1.IncyclistCapability.Power, { noRecursive: true, legacy });
474
- }
361
+ if (emit)
362
+ this.emitCapabiltyChanged(capability);
475
363
  this.updateUserSettings();
364
+ return;
476
365
  }
477
366
  selectSingleDevice(udid, capability) {
478
367
  var _a;
@@ -496,7 +385,6 @@ class DeviceConfigurationService extends events_1.default {
496
385
  }
497
386
  add(deviceSettings, props) {
498
387
  var _a, _b;
499
- const isNewUi = this.isNewUi();
500
388
  let udid = this.getUdid(deviceSettings);
501
389
  const { legacy = false } = props || {};
502
390
  this.logEvent({ message: 'add device', udid, deviceSettings, legacy });
@@ -525,30 +413,10 @@ class DeviceConfigurationService extends events_1.default {
525
413
  if (c.devices.includes(udid))
526
414
  return udid;
527
415
  const isBike = adapter.hasCapability(incyclist_devices_1.IncyclistCapability.Control);
528
- const isPower = adapter.hasCapability(incyclist_devices_1.IncyclistCapability.Power);
529
- if (legacy && !isNewUi) {
530
- const isBikeCap = c.capability === 'bike';
531
- const isControlCap = c.capability === incyclist_devices_1.IncyclistCapability.Control;
532
- const isHrmCap = c.capability === incyclist_devices_1.IncyclistCapability.HeartRate;
533
- const canAdd = (isBikeCap && (isBike || isPower)) ||
534
- (isControlCap && isBike) ||
535
- (!isHrmCap && !isControlCap && (isBike || isPower)) ||
536
- adapter.hasCapability(c.capability);
537
- const canSelect = (isBikeCap || isControlCap || isHrmCap) &&
538
- (!c.selected && !c.disabled &&
539
- (isBike || isPower || c.capability === incyclist_devices_1.IncyclistCapability.HeartRate));
540
- if (canAdd) {
541
- c.devices.push(udid);
542
- if (canSelect)
543
- c.selected = udid;
544
- }
545
- }
546
- else {
547
- if (adapter.hasCapability(c.capability) || (!isNewUi && c.capability === 'bike' && (isBike || isPower))) {
548
- c.devices.push(udid);
549
- if (!c.selected && !c.disabled && (isBike || c.capability === incyclist_devices_1.IncyclistCapability.HeartRate))
550
- c.selected = udid;
551
- }
416
+ if (adapter.hasCapability(c.capability) && c.capability !== 'bike') {
417
+ c.devices.push(udid);
418
+ if (!c.selected && !c.disabled && (isBike || c.capability === incyclist_devices_1.IncyclistCapability.HeartRate))
419
+ c.selected = udid;
552
420
  }
553
421
  });
554
422
  this.updateUserSettings();
@@ -611,8 +479,8 @@ class DeviceConfigurationService extends events_1.default {
611
479
  }
612
480
  }
613
481
  addToCapability(udid, capability) {
614
- const isNewUi = this.isNewUi();
615
- if (isNewUi && capability === 'bike')
482
+ var _a;
483
+ if (capability === 'bike')
616
484
  return;
617
485
  if (!this.settings)
618
486
  this.settings = {};
@@ -624,12 +492,9 @@ class DeviceConfigurationService extends events_1.default {
624
492
  capabilities.push({ capability, devices: [udid], selected: udid });
625
493
  }
626
494
  else {
627
- if (!record.devices.includes(udid))
495
+ if (!((_a = record.devices) === null || _a === void 0 ? void 0 : _a.includes(udid)))
628
496
  record.devices.push(udid);
629
497
  }
630
- if (capability !== 'bike' && !this.adapters[udid].hasCapability(capability)) {
631
- this.adapters[udid].addCapability(capability);
632
- }
633
498
  }
634
499
  getUdid(deviceSettings) {
635
500
  const udids = Object.keys(this.adapters);
@@ -661,12 +526,10 @@ class DeviceConfigurationService extends events_1.default {
661
526
  this.userSettings.set('interfaces', this.settings.interfaces);
662
527
  }
663
528
  canStartRide() {
664
- const isNewUi = this.isNewUi();
665
529
  const { devices, capabilities } = this.settings || {};
666
530
  if (!devices || !capabilities)
667
531
  return false;
668
- const canStart = ((!isNewUi && this.getSelected('bike') !== undefined) ||
669
- this.getSelected(incyclist_devices_1.IncyclistCapability.Control) !== undefined ||
532
+ const canStart = (this.getSelected(incyclist_devices_1.IncyclistCapability.Control) !== undefined ||
670
533
  this.getSelected(incyclist_devices_1.IncyclistCapability.Power) !== undefined ||
671
534
  this.getSelected(incyclist_devices_1.IncyclistCapability.Speed) !== undefined);
672
535
  return canStart;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incyclist-services",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "peerDependencies": {
5
5
  "gd-eventlog": "^0.1.26"
6
6
  },
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "axios": "^1.6.1",
42
- "incyclist-devices": "^2.2.0",
42
+ "incyclist-devices": "^2.2.1",
43
43
  "promise.any": "^2.0.6",
44
44
  "uuid": "^9.0.0",
45
45
  "xml2js": "^0.6.2"