@sports-alliance/sports-lib 7.0.8 → 7.0.9

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 (326) hide show
  1. package/lib/esm/index.js +12034 -152
  2. package/package.json +2 -2
  3. package/lib/esm/activities/activity-parsing-options.js +0 -19
  4. package/lib/esm/activities/activity.interface.js +0 -1
  5. package/lib/esm/activities/activity.js +0 -281
  6. package/lib/esm/activities/activity.json.interface.js +0 -1
  7. package/lib/esm/activities/activity.spec.js +0 -348
  8. package/lib/esm/activities/activity.types.js +0 -1046
  9. package/lib/esm/activities/activityt-types.spec.js +0 -16
  10. package/lib/esm/activities/devices/device.interface.js +0 -1
  11. package/lib/esm/activities/devices/device.js +0 -26
  12. package/lib/esm/activities/devices/device.json.interface.js +0 -1
  13. package/lib/esm/constants/constants.js +0 -8
  14. package/lib/esm/creators/creator.interface.js +0 -1
  15. package/lib/esm/creators/creator.js +0 -37
  16. package/lib/esm/creators/creator.json.interface.js +0 -1
  17. package/lib/esm/creators/creator.spec.js +0 -25
  18. package/lib/esm/data/data-active-lap.js +0 -4
  19. package/lib/esm/data/data-active-lengths.js +0 -4
  20. package/lib/esm/data/data-aerobic-training-effect.js +0 -8
  21. package/lib/esm/data/data-anaerobic-training-effect.js +0 -8
  22. package/lib/esm/data/data-stance-time-balance-left.js +0 -4
  23. package/lib/esm/data/data-stance-time-balance-right.js +0 -4
  24. package/lib/esm/data/data-stance-time-balance.js +0 -3
  25. package/lib/esm/data/data-store.spec.js +0 -78
  26. package/lib/esm/data/data-total-cycles.js +0 -4
  27. package/lib/esm/data/data.absolute-pressure.js +0 -5
  28. package/lib/esm/data/data.accumulated-power.js +0 -8
  29. package/lib/esm/data/data.activity-types.js +0 -7
  30. package/lib/esm/data/data.air-power-avg.js +0 -4
  31. package/lib/esm/data/data.air-power-max.js +0 -4
  32. package/lib/esm/data/data.air-power-min.js +0 -4
  33. package/lib/esm/data/data.air-power.js +0 -8
  34. package/lib/esm/data/data.alti-baro-profile.js +0 -4
  35. package/lib/esm/data/data.altitude-avg.js +0 -4
  36. package/lib/esm/data/data.altitude-gps.js +0 -5
  37. package/lib/esm/data/data.altitude-max.js +0 -4
  38. package/lib/esm/data/data.altitude-min.js +0 -4
  39. package/lib/esm/data/data.altitude-smooth.js +0 -4
  40. package/lib/esm/data/data.altitude.js +0 -8
  41. package/lib/esm/data/data.array.js +0 -13
  42. package/lib/esm/data/data.ascent-time.js +0 -4
  43. package/lib/esm/data/data.ascent.js +0 -4
  44. package/lib/esm/data/data.auto-lap-distance.js +0 -5
  45. package/lib/esm/data/data.auto-lap-duration.js +0 -4
  46. package/lib/esm/data/data.auto-lap-used.js +0 -7
  47. package/lib/esm/data/data.auto-pause-used.js +0 -7
  48. package/lib/esm/data/data.avg-stride-length.js +0 -4
  49. package/lib/esm/data/data.balance.js +0 -6
  50. package/lib/esm/data/data.bare.js +0 -4
  51. package/lib/esm/data/data.battery-charge.js +0 -8
  52. package/lib/esm/data/data.battery-consumption.js +0 -8
  53. package/lib/esm/data/data.battery-current.js +0 -8
  54. package/lib/esm/data/data.battery-life-estimation.js +0 -4
  55. package/lib/esm/data/data.battery-voltage.js +0 -8
  56. package/lib/esm/data/data.bike-pod-used.js +0 -7
  57. package/lib/esm/data/data.boolean.js +0 -9
  58. package/lib/esm/data/data.cadence-avg.js +0 -4
  59. package/lib/esm/data/data.cadence-max.js +0 -4
  60. package/lib/esm/data/data.cadence-min.js +0 -4
  61. package/lib/esm/data/data.cadence.js +0 -8
  62. package/lib/esm/data/data.cycling-dynamics.js +0 -3
  63. package/lib/esm/data/data.cycling-position.js +0 -37
  64. package/lib/esm/data/data.cycling-seated-time.js +0 -5
  65. package/lib/esm/data/data.cycling-standing-time.js +0 -5
  66. package/lib/esm/data/data.descent-time.js +0 -4
  67. package/lib/esm/data/data.descent.js +0 -4
  68. package/lib/esm/data/data.description.js +0 -4
  69. package/lib/esm/data/data.device-location.js +0 -4
  70. package/lib/esm/data/data.device-names.js +0 -7
  71. package/lib/esm/data/data.distance.js +0 -15
  72. package/lib/esm/data/data.duration.js +0 -56
  73. package/lib/esm/data/data.ehpe.js +0 -5
  74. package/lib/esm/data/data.enabled-navigation-systems.js +0 -4
  75. package/lib/esm/data/data.end-altitude.js +0 -4
  76. package/lib/esm/data/data.end-position.js +0 -4
  77. package/lib/esm/data/data.energy.js +0 -8
  78. package/lib/esm/data/data.epoc.js +0 -5
  79. package/lib/esm/data/data.event.js +0 -3
  80. package/lib/esm/data/data.evpe.js +0 -4
  81. package/lib/esm/data/data.feeling.js +0 -15
  82. package/lib/esm/data/data.foot-pod-used.js +0 -7
  83. package/lib/esm/data/data.form-power.js +0 -4
  84. package/lib/esm/data/data.fused-altitude.js +0 -7
  85. package/lib/esm/data/data.fused-location.js +0 -7
  86. package/lib/esm/data/data.gnss-distance.js +0 -4
  87. package/lib/esm/data/data.grade-adjusted-pace-avg.js +0 -15
  88. package/lib/esm/data/data.grade-adjusted-pace-max.js +0 -15
  89. package/lib/esm/data/data.grade-adjusted-pace-min.js +0 -15
  90. package/lib/esm/data/data.grade-adjusted-pace.js +0 -25
  91. package/lib/esm/data/data.grade-adjusted-speed-avg.js +0 -46
  92. package/lib/esm/data/data.grade-adjusted-speed-max.js +0 -46
  93. package/lib/esm/data/data.grade-adjusted-speed-min.js +0 -46
  94. package/lib/esm/data/data.grade-adjusted-speed.js +0 -78
  95. package/lib/esm/data/data.grade-smooth.js +0 -7
  96. package/lib/esm/data/data.grade.js +0 -7
  97. package/lib/esm/data/data.ground-time.js +0 -8
  98. package/lib/esm/data/data.heart-rate-avg.js +0 -4
  99. package/lib/esm/data/data.heart-rate-max.js +0 -4
  100. package/lib/esm/data/data.heart-rate-min.js +0 -4
  101. package/lib/esm/data/data.heart-rate-used.js +0 -7
  102. package/lib/esm/data/data.heart-rate-zone-five-duration.js +0 -4
  103. package/lib/esm/data/data.heart-rate-zone-four-duration.js +0 -4
  104. package/lib/esm/data/data.heart-rate-zone-one-duration.js +0 -4
  105. package/lib/esm/data/data.heart-rate-zone-three-duration.js +0 -4
  106. package/lib/esm/data/data.heart-rate-zone-two-duration.js +0 -4
  107. package/lib/esm/data/data.heart-rate.js +0 -8
  108. package/lib/esm/data/data.ibi.js +0 -8
  109. package/lib/esm/data/data.interface.js +0 -5
  110. package/lib/esm/data/data.js +0 -62
  111. package/lib/esm/data/data.json.interface.js +0 -1
  112. package/lib/esm/data/data.latitude-degrees.js +0 -5
  113. package/lib/esm/data/data.left-balance.js +0 -4
  114. package/lib/esm/data/data.leg-stiffness.js +0 -16
  115. package/lib/esm/data/data.longitude-degrees.js +0 -5
  116. package/lib/esm/data/data.moving-time.js +0 -4
  117. package/lib/esm/data/data.number-of-satellites.js +0 -7
  118. package/lib/esm/data/data.number-of.samples.js +0 -4
  119. package/lib/esm/data/data.number.js +0 -13
  120. package/lib/esm/data/data.pace-avg.js +0 -8
  121. package/lib/esm/data/data.pace-max.js +0 -8
  122. package/lib/esm/data/data.pace-min.js +0 -8
  123. package/lib/esm/data/data.pace.js +0 -46
  124. package/lib/esm/data/data.pause.js +0 -4
  125. package/lib/esm/data/data.peak-epoc.js +0 -7
  126. package/lib/esm/data/data.peak-training-effect.js +0 -4
  127. package/lib/esm/data/data.percent.js +0 -4
  128. package/lib/esm/data/data.pool-length.js +0 -5
  129. package/lib/esm/data/data.position.interface.js +0 -1
  130. package/lib/esm/data/data.position.js +0 -18
  131. package/lib/esm/data/data.power-avg.js +0 -4
  132. package/lib/esm/data/data.power-down.js +0 -4
  133. package/lib/esm/data/data.power-intensity-factor.js +0 -5
  134. package/lib/esm/data/data.power-left.js +0 -4
  135. package/lib/esm/data/data.power-max.js +0 -4
  136. package/lib/esm/data/data.power-min.js +0 -4
  137. package/lib/esm/data/data.power-normalized.js +0 -4
  138. package/lib/esm/data/data.power-pedal-smoothness-left.js +0 -4
  139. package/lib/esm/data/data.power-pedal-smoothness-right.js +0 -4
  140. package/lib/esm/data/data.power-pod-used.js +0 -7
  141. package/lib/esm/data/data.power-right.js +0 -4
  142. package/lib/esm/data/data.power-torque-effectiveness-left.js +0 -4
  143. package/lib/esm/data/data.power-torque-effectiveness-right.js +0 -4
  144. package/lib/esm/data/data.power-training-stress-score.js +0 -5
  145. package/lib/esm/data/data.power-up.js +0 -4
  146. package/lib/esm/data/data.power-work.js +0 -5
  147. package/lib/esm/data/data.power-zone-five-duration.js +0 -4
  148. package/lib/esm/data/data.power-zone-four-duration.js +0 -4
  149. package/lib/esm/data/data.power-zone-one-duration.js +0 -4
  150. package/lib/esm/data/data.power-zone-three-duration.js +0 -4
  151. package/lib/esm/data/data.power-zone-two-duration.js +0 -4
  152. package/lib/esm/data/data.power.js +0 -8
  153. package/lib/esm/data/data.recovery-time.js +0 -7
  154. package/lib/esm/data/data.rider-position-change-event.js +0 -8
  155. package/lib/esm/data/data.right-balance.js +0 -4
  156. package/lib/esm/data/data.rpe.js +0 -23
  157. package/lib/esm/data/data.satellite-5-best-snr.js +0 -4
  158. package/lib/esm/data/data.sea-level-pressure.js +0 -5
  159. package/lib/esm/data/data.spec.js +0 -25
  160. package/lib/esm/data/data.speed-avg.js +0 -46
  161. package/lib/esm/data/data.speed-max.js +0 -46
  162. package/lib/esm/data/data.speed-min.js +0 -46
  163. package/lib/esm/data/data.speed-zone-five-duration.js +0 -4
  164. package/lib/esm/data/data.speed-zone-four-duration.js +0 -4
  165. package/lib/esm/data/data.speed-zone-one-duration.js +0 -4
  166. package/lib/esm/data/data.speed-zone-three-duration.js +0 -4
  167. package/lib/esm/data/data.speed-zone-two-duration.js +0 -4
  168. package/lib/esm/data/data.speed.js +0 -88
  169. package/lib/esm/data/data.sport-profile-name.js +0 -4
  170. package/lib/esm/data/data.stance-time.js +0 -5
  171. package/lib/esm/data/data.start-altitude.js +0 -4
  172. package/lib/esm/data/data.start-event.js +0 -4
  173. package/lib/esm/data/data.start-position.js +0 -4
  174. package/lib/esm/data/data.step-length.js +0 -4
  175. package/lib/esm/data/data.steps-old.js +0 -4
  176. package/lib/esm/data/data.steps.js +0 -4
  177. package/lib/esm/data/data.stop-all-event.js +0 -4
  178. package/lib/esm/data/data.stop-event.js +0 -4
  179. package/lib/esm/data/data.store.export.spec.js +0 -66
  180. package/lib/esm/data/data.store.js +0 -1213
  181. package/lib/esm/data/data.string.js +0 -13
  182. package/lib/esm/data/data.stryd-altitude.js +0 -4
  183. package/lib/esm/data/data.stryd-distance.js +0 -4
  184. package/lib/esm/data/data.stryd-speed.js +0 -4
  185. package/lib/esm/data/data.swim-pace-avg.js +0 -8
  186. package/lib/esm/data/data.swim-pace-max.js +0 -8
  187. package/lib/esm/data/data.swim-pace-min.js +0 -8
  188. package/lib/esm/data/data.swim-pace.js +0 -19
  189. package/lib/esm/data/data.swolf-25m.js +0 -4
  190. package/lib/esm/data/data.swolf-50m.js +0 -4
  191. package/lib/esm/data/data.target-distance.js +0 -4
  192. package/lib/esm/data/data.target-heart-rate-zone.js +0 -4
  193. package/lib/esm/data/data.target-power-zone.js +0 -4
  194. package/lib/esm/data/data.target-speed-zone.js +0 -4
  195. package/lib/esm/data/data.target-time.js +0 -4
  196. package/lib/esm/data/data.temperature-avg.js +0 -4
  197. package/lib/esm/data/data.temperature-max.js +0 -4
  198. package/lib/esm/data/data.temperature-min.js +0 -4
  199. package/lib/esm/data/data.temperature.js +0 -8
  200. package/lib/esm/data/data.time.js +0 -6
  201. package/lib/esm/data/data.timer-time.js +0 -4
  202. package/lib/esm/data/data.vertical-oscillation.js +0 -5
  203. package/lib/esm/data/data.vertical-ratio.js +0 -5
  204. package/lib/esm/data/data.vertical-speed-avg.js +0 -53
  205. package/lib/esm/data/data.vertical-speed-max.js +0 -53
  206. package/lib/esm/data/data.vertical-speed-min.js +0 -53
  207. package/lib/esm/data/data.vertical-speed.js +0 -103
  208. package/lib/esm/data/data.vo2-max.js +0 -7
  209. package/lib/esm/data/ibi/data.ibi.filters.js +0 -52
  210. package/lib/esm/data/ibi/data.ibi.js +0 -98
  211. package/lib/esm/data/ibi/data.ibi.spec.js +0 -66
  212. package/lib/esm/duration/duration.class.abstract.js +0 -36
  213. package/lib/esm/duration/duration.class.interface.js +0 -1
  214. package/lib/esm/errors/duration-exceeded-event-lib.error.js +0 -9
  215. package/lib/esm/errors/empty-event-sports-libs.error.js +0 -9
  216. package/lib/esm/errors/event-lib.error.js +0 -8
  217. package/lib/esm/errors/lib.error.js +0 -6
  218. package/lib/esm/errors/parsing-event-lib.error.js +0 -9
  219. package/lib/esm/events/adapters/exporters/exporter.gpx.js +0 -75
  220. package/lib/esm/events/adapters/exporters/exporter.interface.js +0 -1
  221. package/lib/esm/events/adapters/exporters/exporter.json.js +0 -20
  222. package/lib/esm/events/adapters/file-type.enum.js +0 -7
  223. package/lib/esm/events/adapters/importers/fit/importer.fit.ant-plus.device.names.js +0 -25
  224. package/lib/esm/events/adapters/importers/fit/importer.fit.coros.device.names.js +0 -5
  225. package/lib/esm/events/adapters/importers/fit/importer.fit.development.device.names.js +0 -4
  226. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.device.names.js +0 -462
  227. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.data.js +0 -877
  228. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.js +0 -106
  229. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.spec.js +0 -32
  230. package/lib/esm/events/adapters/importers/fit/importer.fit.hammerhead.device.names.js +0 -4
  231. package/lib/esm/events/adapters/importers/fit/importer.fit.integration.spec.js +0 -44
  232. package/lib/esm/events/adapters/importers/fit/importer.fit.js +0 -978
  233. package/lib/esm/events/adapters/importers/fit/importer.fit.lezyne.device.names.js +0 -3
  234. package/lib/esm/events/adapters/importers/fit/importer.fit.magellan.device.names.js +0 -5
  235. package/lib/esm/events/adapters/importers/fit/importer.fit.mapper.js +0 -231
  236. package/lib/esm/events/adapters/importers/fit/importer.fit.saris.device.names.js +0 -3
  237. package/lib/esm/events/adapters/importers/fit/importer.fit.spec.js +0 -326
  238. package/lib/esm/events/adapters/importers/fit/importer.fit.srm.device.names.js +0 -7
  239. package/lib/esm/events/adapters/importers/fit/importer.fit.suunto.device.names.js +0 -16
  240. package/lib/esm/events/adapters/importers/fit/importer.fit.wahoo.device.names.js +0 -10
  241. package/lib/esm/events/adapters/importers/gpx/gx-parser.js +0 -36
  242. package/lib/esm/events/adapters/importers/gpx/importer.gpx.integration.spec.js +0 -44
  243. package/lib/esm/events/adapters/importers/gpx/importer.gpx.js +0 -102
  244. package/lib/esm/events/adapters/importers/gpx/importer.gpx.mapper.js +0 -142
  245. package/lib/esm/events/adapters/importers/gpx/importer.gpx.spec.js +0 -71
  246. package/lib/esm/events/adapters/importers/json/importer.json.js +0 -160
  247. package/lib/esm/events/adapters/importers/sample-info.interface.js +0 -1
  248. package/lib/esm/events/adapters/importers/suunto/importer.suunto.activity.ids.js +0 -85
  249. package/lib/esm/events/adapters/importers/suunto/importer.suunto.device.names.js +0 -26
  250. package/lib/esm/events/adapters/importers/suunto/importer.suunto.integration.spec.js +0 -44
  251. package/lib/esm/events/adapters/importers/suunto/importer.suunto.json.js +0 -717
  252. package/lib/esm/events/adapters/importers/suunto/importer.suunto.sml.js +0 -125
  253. package/lib/esm/events/adapters/importers/tcx/importer.tcx.integration.spec.js +0 -46
  254. package/lib/esm/events/adapters/importers/tcx/importer.tcx.js +0 -442
  255. package/lib/esm/events/adapters/importers/tcx/importer.tcx.mapper.js +0 -91
  256. package/lib/esm/events/adapters/importers/tcx/utils.tcx.js +0 -36
  257. package/lib/esm/events/event.interface.js +0 -1
  258. package/lib/esm/events/event.js +0 -123
  259. package/lib/esm/events/event.json.interface.js +0 -1
  260. package/lib/esm/events/event.spec.js +0 -51
  261. package/lib/esm/events/utilities/activity.utilities.js +0 -1841
  262. package/lib/esm/events/utilities/activity.utilities.spec.js +0 -373
  263. package/lib/esm/events/utilities/event.utilities.js +0 -57
  264. package/lib/esm/events/utilities/grade-calculator/grade-calculator.js +0 -121
  265. package/lib/esm/events/utilities/grade-calculator/grade-calculator.spec.js +0 -93
  266. package/lib/esm/events/utilities/grade-calculator/low-pass-filter.js +0 -86
  267. package/lib/esm/events/utilities/helpers.js +0 -162
  268. package/lib/esm/geodesy/adapters/adapter.interface.js +0 -1
  269. package/lib/esm/geodesy/adapters/geolib.adapter.js +0 -28
  270. package/lib/esm/id/id.abstract.class.js +0 -9
  271. package/lib/esm/id/id.class.interface.js +0 -1
  272. package/lib/esm/id/id.class.spec.js +0 -13
  273. package/lib/esm/intensity-zones/intensity-zones.interface.js +0 -1
  274. package/lib/esm/intensity-zones/intensity-zones.js +0 -29
  275. package/lib/esm/intensity-zones/intensity-zones.json.interface.js +0 -1
  276. package/lib/esm/intensity-zones/intensity-zones.spec.js +0 -30
  277. package/lib/esm/laps/lap.interface.js +0 -1
  278. package/lib/esm/laps/lap.js +0 -29
  279. package/lib/esm/laps/lap.json.interface.js +0 -1
  280. package/lib/esm/laps/lap.types.js +0 -52
  281. package/lib/esm/meta-data/event-meta-data.interface.js +0 -6
  282. package/lib/esm/meta-data/meta-data.js +0 -57
  283. package/lib/esm/meta-data/meta-data.json.interface.js +0 -1
  284. package/lib/esm/privacy/privacy.class.interface.js +0 -5
  285. package/lib/esm/serializable/serializable.class.interface.js +0 -1
  286. package/lib/esm/service-tokens/oauth1-service-token.interface.js +0 -1
  287. package/lib/esm/service-tokens/oauth2-service-token.interface.js +0 -1
  288. package/lib/esm/specs/activities-parsing.integration.spec.js +0 -1847
  289. package/lib/esm/specs/activity-duration-stream.integration.spec.js +0 -57
  290. package/lib/esm/specs/fixtures/streams/strava/rides/3171472783.json +0 -52534
  291. package/lib/esm/specs/fixtures/streams/strava/rides/3171487458.json +0 -78818
  292. package/lib/esm/specs/fixtures/streams/strava/rides/343080886.json +0 -105090
  293. package/lib/esm/specs/fixtures/streams/strava/rides/5910143591.json +0 -110711
  294. package/lib/esm/specs/fixtures/streams/strava/runs/2451375851.json +0 -74846
  295. package/lib/esm/specs/fixtures/streams/strava/runs/2709634581.json +0 -66817
  296. package/lib/esm/specs/fixtures/streams/strava/runs/3156040843.json +0 -17594
  297. package/lib/esm/specs/fixtures/streams/strava/runs/3182900697.json +0 -17322
  298. package/lib/esm/specs/fixtures/streams/strava/runs/3183465494.json +0 -20463
  299. package/lib/esm/specs/fixtures/streams/strava/runs/3183490558.json +0 -58202
  300. package/lib/esm/specs/spec-utils.js +0 -159
  301. package/lib/esm/specs/strava-streams-compliance.spec.js +0 -951
  302. package/lib/esm/stats/stats.class.abstract.js +0 -32
  303. package/lib/esm/stats/stats.class.interface.js +0 -1
  304. package/lib/esm/stats/stats.json.interface.js +0 -1
  305. package/lib/esm/streams/compressed.stream.interface.js +0 -12
  306. package/lib/esm/streams/ibi-stream.js +0 -43
  307. package/lib/esm/streams/low-pass.stream.filter.js +0 -9
  308. package/lib/esm/streams/stream.filter.interface.js +0 -1
  309. package/lib/esm/streams/stream.interface.js +0 -1
  310. package/lib/esm/streams/stream.js +0 -72
  311. package/lib/esm/streams/stream.spec.js +0 -168
  312. package/lib/esm/tiles/tile.settings.interface.js +0 -41
  313. package/lib/esm/users/settings/dashboard/user.dashboard.settings.interface.js +0 -13
  314. package/lib/esm/users/settings/user.app.settings.interface.js +0 -5
  315. package/lib/esm/users/settings/user.chart.settings.interface.js +0 -23
  316. package/lib/esm/users/settings/user.map.settings.interface.js +0 -22
  317. package/lib/esm/users/settings/user.my-tracks.settings.interface.js +0 -1
  318. package/lib/esm/users/settings/user.settings.interface.js +0 -1
  319. package/lib/esm/users/settings/user.stats-settings.interface.js +0 -1
  320. package/lib/esm/users/settings/user.summaries.settings.interface.js +0 -1
  321. package/lib/esm/users/settings/user.unit.settings.interface.js +0 -73
  322. package/lib/esm/users/user.account.privileges.interface.js +0 -1
  323. package/lib/esm/users/user.export-to-csv.settings.interface.js +0 -1
  324. package/lib/esm/users/user.interface.js +0 -1
  325. package/lib/esm/users/user.js +0 -38
  326. package/lib/esm/users/user.service.meta.interface.js +0 -1
@@ -1,3 +0,0 @@
1
- export const ImporterFitLezyneDeviceNames = {
2
- 4: 'Enhanced Super GPS'
3
- };
@@ -1,5 +0,0 @@
1
- export const ImporterFitMagellanDeviceNames = {
2
- 105: 'Cyclo 105',
3
- 315: 'Cyclo 315',
4
- 505: 'Cyclo 505'
5
- };
@@ -1,231 +0,0 @@
1
- import { DataLatitudeDegrees } from '../../../../data/data.latitude-degrees';
2
- import { DataAltitude } from '../../../../data/data.altitude';
3
- import { DataHeartRate } from '../../../../data/data.heart-rate';
4
- import { DataCadence } from '../../../../data/data.cadence';
5
- import { DataTemperature } from '../../../../data/data.temperature';
6
- import { DataDistance } from '../../../../data/data.distance';
7
- import { DataSpeed } from '../../../../data/data.speed';
8
- import { DataVerticalSpeed } from '../../../../data/data.vertical-speed';
9
- import { DataPower } from '../../../../data/data.power';
10
- import { DataLongitudeDegrees } from '../../../../data/data.longitude-degrees';
11
- import { DataFormPower } from '../../../../data/data.form-power';
12
- import { DataLegStiffness } from '../../../../data/data.leg-stiffness';
13
- import { DataVerticalOscillation } from '../../../../data/data.vertical-oscillation';
14
- import { isNumber } from '../../../utilities/helpers';
15
- import { DataAccumulatedPower } from '../../../../data/data.accumulated-power';
16
- import { DataStrydAltitude } from '../../../../data/data.stryd-altitude';
17
- import { DataStrydDistance } from '../../../../data/data.stryd-distance';
18
- import { DataStrydSpeed } from '../../../../data/data.stryd-speed';
19
- import { DataRightBalance } from '../../../../data/data.right-balance';
20
- import { DataLeftBalance } from '../../../../data/data.left-balance';
21
- import { DataStanceTime } from '../../../../data/data.stance-time';
22
- import { DataStanceTimeBalanceLeft } from '../../../../data/data-stance-time-balance-left';
23
- import { DataStepLength } from '../../../../data/data.step-length';
24
- import { DataVerticalRatio } from '../../../../data/data.vertical-ratio';
25
- import { DataGroundTime } from '../../../../data/data.ground-time';
26
- import { DataAirPower } from '../../../../data/data.air-power';
27
- import { ALTITUDE_PRECISION_NUMBER_OF_DECIMAL_PLACES, GNSS_DEGREES_PRECISION_NUMBER_OF_DECIMAL_PLACES } from '../../../../constants/constants';
28
- export const FITSampleMapper = [
29
- {
30
- dataType: DataLatitudeDegrees.type,
31
- getSampleValue: (sample) => {
32
- return isNumber(sample.position_lat)
33
- ? Math.round(sample.position_lat * Math.pow(10, GNSS_DEGREES_PRECISION_NUMBER_OF_DECIMAL_PLACES)) /
34
- Math.pow(10, GNSS_DEGREES_PRECISION_NUMBER_OF_DECIMAL_PLACES)
35
- : sample.position_lat;
36
- }
37
- },
38
- {
39
- dataType: DataLongitudeDegrees.type,
40
- getSampleValue: (sample) => {
41
- return isNumber(sample.position_long)
42
- ? Math.round(sample.position_long * Math.pow(10, GNSS_DEGREES_PRECISION_NUMBER_OF_DECIMAL_PLACES)) /
43
- Math.pow(10, GNSS_DEGREES_PRECISION_NUMBER_OF_DECIMAL_PLACES)
44
- : sample.position_long;
45
- }
46
- },
47
- {
48
- dataType: DataDistance.type,
49
- getSampleValue: (sample) => {
50
- return isNumber(sample.distance) ? sample.distance : sample.Distance;
51
- }
52
- },
53
- {
54
- dataType: DataHeartRate.type,
55
- getSampleValue: (sample) => {
56
- return sample.heart_rate;
57
- }
58
- },
59
- {
60
- dataType: DataAltitude.type,
61
- getSampleValue: (sample) => {
62
- const altitude = isNumber(sample.enhanced_altitude)
63
- ? sample.enhanced_altitude
64
- : isNumber(sample.EnhancedAltitude)
65
- ? sample.EnhancedAltitude
66
- : isNumber(sample.altitude)
67
- ? sample.altitude
68
- : isNumber(sample.Altitude)
69
- ? sample.Altitude
70
- : null;
71
- return isNumber(altitude)
72
- ? Math.round(altitude * Math.pow(10, ALTITUDE_PRECISION_NUMBER_OF_DECIMAL_PLACES)) /
73
- Math.pow(10, ALTITUDE_PRECISION_NUMBER_OF_DECIMAL_PLACES)
74
- : altitude;
75
- }
76
- },
77
- {
78
- dataType: DataStrydAltitude.type,
79
- getSampleValue: (sample) => {
80
- return isNumber(sample.Elevation)
81
- ? Math.round(sample.Elevation * Math.pow(10, ALTITUDE_PRECISION_NUMBER_OF_DECIMAL_PLACES)) /
82
- Math.pow(10, ALTITUDE_PRECISION_NUMBER_OF_DECIMAL_PLACES)
83
- : sample.Elevation;
84
- }
85
- },
86
- {
87
- dataType: DataStrydDistance.type,
88
- getSampleValue: (sample) => {
89
- return sample.Distance;
90
- }
91
- },
92
- {
93
- dataType: DataStrydSpeed.type,
94
- getSampleValue: (sample) => {
95
- return sample.Speed;
96
- }
97
- },
98
- {
99
- dataType: DataCadence.type,
100
- getSampleValue: (sample) => {
101
- let cadenceValue = sample.cadence;
102
- if (isNumber(sample.fractional_cadence)) {
103
- cadenceValue += sample.fractional_cadence;
104
- }
105
- return cadenceValue;
106
- }
107
- },
108
- {
109
- dataType: DataSpeed.type,
110
- getSampleValue: (sample) => {
111
- if (isNumber(sample.enhanced_speed)) {
112
- return sample.enhanced_speed;
113
- }
114
- if (isNumber(sample.EnhancedSpeed)) {
115
- return sample.EnhancedSpeed;
116
- }
117
- if (isNumber(sample.speed)) {
118
- return sample.speed;
119
- }
120
- if (isNumber(sample.Speed)) {
121
- return sample.Speed;
122
- }
123
- return null;
124
- }
125
- },
126
- {
127
- dataType: DataVerticalSpeed.type,
128
- getSampleValue: (sample) => {
129
- return sample.vertical_speed;
130
- }
131
- },
132
- {
133
- dataType: DataPower.type,
134
- getSampleValue: (sample, sampleInfo) => {
135
- // Ensure power stream compliance when in some cases power sample field could be missing even if others samples have it
136
- // Just set watts to 0 when this happen
137
- // Case example: ride file "7432332116.fit" from integration tests
138
- const watts = isNumber(sample.power) ? sample.power : isNumber(sample.Power) ? sample.Power : sample.RP_Power;
139
- return (sampleInfo === null || sampleInfo === void 0 ? void 0 : sampleInfo.hasPowerMeter) ? watts || 0 : null;
140
- }
141
- },
142
- {
143
- dataType: DataAccumulatedPower.type,
144
- getSampleValue: (sample) => {
145
- return sample.accumulated_power;
146
- }
147
- },
148
- {
149
- dataType: DataTemperature.type,
150
- getSampleValue: (sample) => {
151
- return sample.temperature;
152
- }
153
- },
154
- {
155
- dataType: DataFormPower.type,
156
- getSampleValue: (sample) => {
157
- return sample['Form Power'];
158
- }
159
- },
160
- {
161
- dataType: DataAirPower.type,
162
- getSampleValue: (sample) => {
163
- return sample['Air Power'];
164
- }
165
- },
166
- {
167
- dataType: DataGroundTime.type,
168
- getSampleValue: (sample) => {
169
- return sample['Ground Time'] / 1000;
170
- }
171
- },
172
- {
173
- dataType: DataLegStiffness.type,
174
- getSampleValue: (sample) => {
175
- return sample['Leg Spring Stiffness'];
176
- }
177
- },
178
- {
179
- dataType: DataVerticalOscillation.type,
180
- getSampleValue: (sample) => {
181
- return sample.vertical_oscillation;
182
- }
183
- },
184
- {
185
- dataType: DataRightBalance.type,
186
- getSampleValue: (sample) => {
187
- if (!sample.left_right_balance) {
188
- return null;
189
- }
190
- return sample.left_right_balance.right === true
191
- ? sample.left_right_balance.value
192
- : 100 - sample.left_right_balance.value;
193
- }
194
- },
195
- // @todo if conservation of data is needed this can be taken of and generated on the fly
196
- {
197
- dataType: DataLeftBalance.type,
198
- getSampleValue: (sample) => {
199
- if (!sample.left_right_balance) {
200
- return null;
201
- }
202
- return sample.left_right_balance.right === false
203
- ? sample.left_right_balance.value
204
- : 100 - sample.left_right_balance.value;
205
- }
206
- },
207
- {
208
- dataType: DataStanceTime.type,
209
- getSampleValue: (sample) => {
210
- return sample.stance_time;
211
- }
212
- },
213
- {
214
- dataType: DataStanceTimeBalanceLeft.type,
215
- getSampleValue: (sample) => {
216
- return sample.stance_time_balance; // The field sample refers to the balance on left leg
217
- }
218
- },
219
- {
220
- dataType: DataStepLength.type,
221
- getSampleValue: (sample) => {
222
- return sample.step_length / 1000;
223
- }
224
- },
225
- {
226
- dataType: DataVerticalRatio.type,
227
- getSampleValue: (sample) => {
228
- return sample.vertical_ratio;
229
- }
230
- }
231
- ];
@@ -1,3 +0,0 @@
1
- export const ImporterFitSarisDeviceNames = {
2
- 22: 'PowerTap Joule GPS+'
3
- };
@@ -1,326 +0,0 @@
1
- import { EventImporterFIT } from './importer.fit';
2
- describe('EventImporterFIT', () => {
3
- describe('Handle device creator', () => {
4
- function generateFitDeviceDataObject(manufacturer = null, productId = -1, productName = null) {
5
- const data = {};
6
- if (manufacturer !== null) {
7
- data.manufacturer = manufacturer;
8
- }
9
- if (productId !== -1) {
10
- data.product = productId;
11
- }
12
- if (productName) {
13
- data.product_name = productName;
14
- }
15
- return {
16
- file_ids: [data]
17
- };
18
- }
19
- describe('Recognized', () => {
20
- it('should recognize a known Suunto device', done => {
21
- const manufacturer = 'suunto';
22
- const expectedName = 'Suunto Ambit3 Peak';
23
- const productId = 22;
24
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
25
- // When
26
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
27
- // Then
28
- expect(creator.isRecognized).toBeTruthy();
29
- expect(creator.name).toEqual(expectedName);
30
- expect(creator.manufacturer).toEqual(manufacturer);
31
- done();
32
- });
33
- it('should recognize a known Coros device', done => {
34
- const manufacturer = 'coros';
35
- const expectedName = 'Coros APEX Pro';
36
- const productId = 841;
37
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
38
- // When
39
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
40
- // Then
41
- expect(creator.isRecognized).toBeTruthy();
42
- expect(creator.name).toEqual(expectedName);
43
- expect(creator.manufacturer).toEqual(manufacturer);
44
- done();
45
- });
46
- it('should recognize a known Garmin device', done => {
47
- const manufacturer = 'garmin';
48
- const expectedName = 'Garmin Edge 1000';
49
- const productId = 1836;
50
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
51
- // When
52
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
53
- // Then
54
- expect(creator.isRecognized).toBeTruthy();
55
- expect(creator.name).toEqual(expectedName);
56
- expect(creator.manufacturer).toEqual(manufacturer);
57
- done();
58
- });
59
- it('should recognize a known Wahoo device', done => {
60
- const manufacturer = 'wahoo_fitness';
61
- const expectedName = 'Wahoo ELEMNT BOLT';
62
- const productId = 31;
63
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
64
- // When
65
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
66
- // Then
67
- expect(creator.isRecognized).toBeTruthy();
68
- expect(creator.name).toEqual(expectedName);
69
- expect(creator.manufacturer).toEqual(manufacturer);
70
- done();
71
- });
72
- it('should recognize a known hammerhead device', done => {
73
- const manufacturer = 'hammerhead';
74
- const expectedName = 'Hammerhead Karoo 2';
75
- const productId = 2;
76
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
77
- // When
78
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
79
- // Then
80
- expect(creator.isRecognized).toBeTruthy();
81
- expect(creator.name).toEqual(expectedName);
82
- expect(creator.manufacturer).toEqual(manufacturer);
83
- done();
84
- });
85
- it('should recognize a known SRM device', done => {
86
- const manufacturer = 'srm';
87
- const expectedName = 'Srm PC8';
88
- const productId = 8;
89
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
90
- // When
91
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
92
- // Then
93
- expect(creator.isRecognized).toBeTruthy();
94
- expect(creator.name).toEqual(expectedName);
95
- expect(creator.manufacturer).toEqual(manufacturer);
96
- done();
97
- });
98
- it('should recognize a known zwift virtual device', done => {
99
- const manufacturer = 'zwift';
100
- const expectedName = 'Zwift';
101
- const fitDataObject = generateFitDeviceDataObject(manufacturer);
102
- // When
103
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
104
- // Then
105
- expect(creator.isRecognized).toBeTruthy();
106
- expect(creator.name).toEqual(expectedName);
107
- expect(creator.manufacturer).toEqual(manufacturer);
108
- done();
109
- });
110
- it('should recognize a known Rouvy virtual device', done => {
111
- const manufacturer = 'virtualtraining';
112
- const expectedName = 'Rouvy';
113
- const fitDataObject = generateFitDeviceDataObject(manufacturer, 1);
114
- // When
115
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
116
- // Then
117
- expect(creator.isRecognized).toBeTruthy();
118
- expect(creator.name).toEqual(expectedName);
119
- expect(creator.manufacturer).toEqual(manufacturer);
120
- done();
121
- });
122
- it('should recognize a known Wahoo SYSTM virtual device', done => {
123
- const manufacturer = 'the_sufferfest';
124
- const expectedName = 'Wahoo SYSTM';
125
- const productId = 1231;
126
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
127
- // When
128
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
129
- // Then
130
- expect(creator.isRecognized).toBeTruthy();
131
- expect(creator.name).toEqual(expectedName);
132
- expect(creator.manufacturer).toEqual(manufacturer);
133
- done();
134
- });
135
- it('should recognize a known development device', done => {
136
- const manufacturer = 'development';
137
- const expectedName = 'Zwift';
138
- const productId = 15706;
139
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
140
- // When
141
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
142
- // Then
143
- expect(creator.isRecognized).toBeTruthy();
144
- expect(creator.name).toEqual(expectedName);
145
- expect(creator.manufacturer).toEqual(manufacturer);
146
- done();
147
- });
148
- });
149
- describe('Non recognized', () => {
150
- describe('Known manufacturer with unknown productId & known product name', () => {
151
- it('should format a non-recognized development device with known productId & unknown product name', done => {
152
- const manufacturer = 'development';
153
- const productId = 42;
154
- const expectedName = 'Unknown';
155
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
156
- // When
157
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
158
- // Then
159
- expect(creator.isRecognized).toBeTruthy();
160
- expect(creator.name).toEqual(expectedName);
161
- expect(creator.manufacturer).toEqual(manufacturer);
162
- done();
163
- });
164
- });
165
- describe('Known manufacturer with unknown productId & known product name', () => {
166
- it('should format a non-recognized Coros device with unknown productId & known product name', done => {
167
- const manufacturer = 'coros';
168
- const productId = Math.random();
169
- const productName = 'COROS REFLEX Fake';
170
- const expectedName = 'Coros REFLEX Fake';
171
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId, productName);
172
- // When
173
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
174
- // Then
175
- expect(creator.isRecognized).toBeFalsy();
176
- expect(creator.name).toEqual(expectedName);
177
- expect(creator.manufacturer).toEqual(manufacturer);
178
- done();
179
- });
180
- it('should format a non-recognized Wahoo device with unknown productId & known product name', done => {
181
- const manufacturer = 'wahoo_fitness';
182
- const productId = Math.random();
183
- const productName = 'Fake';
184
- const expectedName = 'Wahoo Fake';
185
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId, productName);
186
- // When
187
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
188
- // Then
189
- expect(creator.isRecognized).toBeFalsy();
190
- expect(creator.name).toEqual(expectedName);
191
- expect(creator.manufacturer).toEqual(manufacturer);
192
- done();
193
- });
194
- });
195
- describe('Known manufacturer with unknown productId & missing product name', () => {
196
- it('should format a non-recognized Suunto device with unknown productId & missing product name', done => {
197
- const manufacturer = 'suunto';
198
- const expectedName = 'Suunto';
199
- const productId = Math.random();
200
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
201
- // When
202
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
203
- // Then
204
- expect(creator.isRecognized).toBeFalsy();
205
- expect(creator.name).toEqual(expectedName);
206
- expect(creator.manufacturer).toEqual(manufacturer);
207
- done();
208
- });
209
- it('should format a non-recognized Garmin device with unknown productId & missing product name', done => {
210
- const manufacturer = 'garmin';
211
- const expectedName = 'Garmin';
212
- const productId = Math.random();
213
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
214
- // When
215
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
216
- // Then
217
- expect(creator.isRecognized).toBeFalsy();
218
- expect(creator.name).toEqual(expectedName);
219
- expect(creator.manufacturer).toEqual(manufacturer);
220
- done();
221
- });
222
- it('should format a non-recognized Wahoo device with unknown productId & missing product name', done => {
223
- const manufacturer = 'wahoo_fitness';
224
- const expectedName = 'Wahoo';
225
- const productId = Math.random();
226
- const fitDataObject = generateFitDeviceDataObject(manufacturer, productId);
227
- // When
228
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
229
- // Then
230
- expect(creator.isRecognized).toBeFalsy();
231
- expect(creator.name).toEqual(expectedName);
232
- expect(creator.manufacturer).toEqual(manufacturer);
233
- done();
234
- });
235
- });
236
- describe('Known manufacturer with missing productId & missing product name', () => {
237
- it('should format a non-recognized Suunto device without productId && product name', done => {
238
- const manufacturer = 'suunto';
239
- const expectedName = 'Suunto';
240
- const fitDataObject = generateFitDeviceDataObject(manufacturer);
241
- // When
242
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
243
- // Then
244
- expect(creator.isRecognized).toBeFalsy();
245
- expect(creator.name).toEqual(expectedName);
246
- expect(creator.manufacturer).toEqual(manufacturer);
247
- done();
248
- });
249
- it('should format a non-recognized Garmin device without productId && product name', done => {
250
- const manufacturer = 'garmin';
251
- const expectedName = 'Garmin';
252
- const fitDataObject = generateFitDeviceDataObject(manufacturer);
253
- // When
254
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
255
- // Then
256
- expect(creator.isRecognized).toBeFalsy();
257
- expect(creator.name).toEqual(expectedName);
258
- expect(creator.manufacturer).toEqual(manufacturer);
259
- done();
260
- });
261
- it('should format a non-recognized Garmin device without productId && product name', done => {
262
- const manufacturer = 'wahoo_fitness';
263
- const expectedName = 'Wahoo';
264
- const fitDataObject = generateFitDeviceDataObject(manufacturer);
265
- // When
266
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
267
- // Then
268
- expect(creator.isRecognized).toBeFalsy();
269
- expect(creator.name).toEqual(expectedName);
270
- expect(creator.manufacturer).toEqual(manufacturer);
271
- done();
272
- });
273
- });
274
- describe('Unknown manufacturer with missing productId & missing product name', () => {
275
- it('should format a non-recognized Suunto device without productId && product name', done => {
276
- const manufacturer = 'reactive';
277
- const expectedName = 'Reactive';
278
- const fitDataObject = generateFitDeviceDataObject(manufacturer);
279
- // When
280
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
281
- // Then
282
- expect(creator.isRecognized).toBeFalsy();
283
- expect(creator.name).toEqual(expectedName);
284
- expect(creator.manufacturer).toEqual(manufacturer);
285
- done();
286
- });
287
- it('should format a non-recognized Garmin device without productId && product name', done => {
288
- const manufacturer = 'high_cadence_fitness';
289
- const expectedName = 'High Cadence Fitness';
290
- const fitDataObject = generateFitDeviceDataObject(manufacturer);
291
- // When
292
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
293
- // Then
294
- expect(creator.isRecognized).toBeFalsy();
295
- expect(creator.name).toEqual(expectedName);
296
- expect(creator.manufacturer).toEqual(manufacturer);
297
- done();
298
- });
299
- });
300
- describe('Empty manufacturer with missing productId & missing product name', () => {
301
- it('should format a non-recognized device without manufacturer, productId && product name (1)', done => {
302
- const manufacturer = 0;
303
- const expectedName = 'Unknown';
304
- const fitDataObject = generateFitDeviceDataObject(manufacturer);
305
- // When
306
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
307
- // Then
308
- expect(creator.isRecognized).toBeFalsy();
309
- expect(creator.name).toEqual(expectedName);
310
- expect(creator.manufacturer).toEqual(manufacturer);
311
- done();
312
- });
313
- it('should format a non-recognized device without manufacturer, productId && product name (2)', done => {
314
- const expectedName = 'Unknown';
315
- const fitDataObject = generateFitDeviceDataObject();
316
- // When
317
- const creator = EventImporterFIT.getCreatorFromFitDataObject(fitDataObject);
318
- // Then
319
- expect(creator.isRecognized).toBeFalsy();
320
- expect(creator.name).toEqual(expectedName);
321
- done();
322
- });
323
- });
324
- });
325
- });
326
- });
@@ -1,7 +0,0 @@
1
- const POWER_CONTROL = 'PC';
2
- export const ImporterFitSrmDeviceNames = {
3
- 5: POWER_CONTROL + '5',
4
- 6: POWER_CONTROL + '6',
5
- 7: POWER_CONTROL + '7',
6
- 8: POWER_CONTROL + '8'
7
- };
@@ -1,16 +0,0 @@
1
- import { ImporterSuuntoDeviceNames } from '../suunto/importer.suunto.device.names';
2
- export const ImporterFitSuuntoDeviceNames = {
3
- 19: ImporterSuuntoDeviceNames.Ambit2,
4
- 28: ImporterSuuntoDeviceNames.Brighton,
5
- 29: ImporterSuuntoDeviceNames.Amsterdam,
6
- 34: ImporterSuuntoDeviceNames.Ibiza,
7
- 35: ImporterSuuntoDeviceNames.Lima,
8
- 36: ImporterSuuntoDeviceNames.Monza,
9
- 32: ImporterSuuntoDeviceNames.Gdansk,
10
- 31: ImporterSuuntoDeviceNames.Forssa,
11
- 30: ImporterSuuntoDeviceNames.Cairo,
12
- 22: ImporterSuuntoDeviceNames['Ambit3 Peak'],
13
- 23: ImporterSuuntoDeviceNames['Ambit3 Sport'],
14
- 24: ImporterSuuntoDeviceNames['Ambit3 Run'],
15
- 25: ImporterSuuntoDeviceNames['Ambit3 Vertical']
16
- };
@@ -1,10 +0,0 @@
1
- export const ImporterFitWahooDeviceNames = {
2
- 28: 'ELEMNT',
3
- 30: 'ELEMNT MINI',
4
- 31: 'ELEMNT BOLT',
5
- 33: 'ELEMNT RIVAL',
6
- 37: 'ELEMNT ROAM',
7
- 38: 'ELEMNT MINI',
8
- 43: 'ELEMNT BOLT',
9
- 47: 'ELEMNT ROAM'
10
- };
@@ -1,36 +0,0 @@
1
- export class GXParser {
2
- constructor(xml, domParser = null) {
3
- domParser = domParser || DOMParser;
4
- const parser = new domParser();
5
- const root = parser.parseFromString(xml, 'text/xml');
6
- return this.parseChild(root.documentElement);
7
- }
8
- parseChild(elm) {
9
- const attrs = {};
10
- const attributes = elm.attributes;
11
- for (let i = 0; i < attributes.length; i++) {
12
- const attr = attributes[i];
13
- if (attr && attr.value) {
14
- attrs[attr.name] = attr.value;
15
- }
16
- }
17
- if (elm.childNodes) {
18
- const children = elm.childNodes;
19
- for (let i = 0; i < children.length; i++) {
20
- const child = children[i];
21
- const name = child.localName;
22
- if (!name) {
23
- continue;
24
- }
25
- if (!attrs[name]) {
26
- attrs[name] = [];
27
- }
28
- attrs[name].push(this.parseChild(child));
29
- }
30
- }
31
- if (Object.keys(attrs).length === 0) {
32
- return elm.textContent;
33
- }
34
- return attrs;
35
- }
36
- }