@sports-alliance/sports-lib 7.0.7 → 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 (336) hide show
  1. package/.editorconfig +14 -0
  2. package/.eslintignore +4 -0
  3. package/.eslintrc.js +9 -0
  4. package/.prettierignore +25 -0
  5. package/.prettierrc.json +12 -0
  6. package/CODE_OF_CONDUCT.md +76 -0
  7. package/jest.config.js +23 -0
  8. package/lib/esm/index.js +12034 -152
  9. package/package.json +3 -2
  10. package/tsconfig.cjs.json +7 -0
  11. package/tsconfig.esm.json +8 -0
  12. package/tsconfig.lib.json +8 -0
  13. package/lib/esm/activities/activity-parsing-options.js +0 -19
  14. package/lib/esm/activities/activity.interface.js +0 -1
  15. package/lib/esm/activities/activity.js +0 -281
  16. package/lib/esm/activities/activity.json.interface.js +0 -1
  17. package/lib/esm/activities/activity.spec.js +0 -348
  18. package/lib/esm/activities/activity.types.js +0 -1046
  19. package/lib/esm/activities/activityt-types.spec.js +0 -16
  20. package/lib/esm/activities/devices/device.interface.js +0 -1
  21. package/lib/esm/activities/devices/device.js +0 -26
  22. package/lib/esm/activities/devices/device.json.interface.js +0 -1
  23. package/lib/esm/constants/constants.js +0 -8
  24. package/lib/esm/creators/creator.interface.js +0 -1
  25. package/lib/esm/creators/creator.js +0 -37
  26. package/lib/esm/creators/creator.json.interface.js +0 -1
  27. package/lib/esm/creators/creator.spec.js +0 -25
  28. package/lib/esm/data/data-active-lap.js +0 -4
  29. package/lib/esm/data/data-active-lengths.js +0 -4
  30. package/lib/esm/data/data-aerobic-training-effect.js +0 -8
  31. package/lib/esm/data/data-anaerobic-training-effect.js +0 -8
  32. package/lib/esm/data/data-stance-time-balance-left.js +0 -4
  33. package/lib/esm/data/data-stance-time-balance-right.js +0 -4
  34. package/lib/esm/data/data-stance-time-balance.js +0 -3
  35. package/lib/esm/data/data-store.spec.js +0 -78
  36. package/lib/esm/data/data-total-cycles.js +0 -4
  37. package/lib/esm/data/data.absolute-pressure.js +0 -5
  38. package/lib/esm/data/data.accumulated-power.js +0 -8
  39. package/lib/esm/data/data.activity-types.js +0 -7
  40. package/lib/esm/data/data.air-power-avg.js +0 -4
  41. package/lib/esm/data/data.air-power-max.js +0 -4
  42. package/lib/esm/data/data.air-power-min.js +0 -4
  43. package/lib/esm/data/data.air-power.js +0 -8
  44. package/lib/esm/data/data.alti-baro-profile.js +0 -4
  45. package/lib/esm/data/data.altitude-avg.js +0 -4
  46. package/lib/esm/data/data.altitude-gps.js +0 -5
  47. package/lib/esm/data/data.altitude-max.js +0 -4
  48. package/lib/esm/data/data.altitude-min.js +0 -4
  49. package/lib/esm/data/data.altitude-smooth.js +0 -4
  50. package/lib/esm/data/data.altitude.js +0 -8
  51. package/lib/esm/data/data.array.js +0 -13
  52. package/lib/esm/data/data.ascent-time.js +0 -4
  53. package/lib/esm/data/data.ascent.js +0 -4
  54. package/lib/esm/data/data.auto-lap-distance.js +0 -5
  55. package/lib/esm/data/data.auto-lap-duration.js +0 -4
  56. package/lib/esm/data/data.auto-lap-used.js +0 -7
  57. package/lib/esm/data/data.auto-pause-used.js +0 -7
  58. package/lib/esm/data/data.avg-stride-length.js +0 -4
  59. package/lib/esm/data/data.balance.js +0 -6
  60. package/lib/esm/data/data.bare.js +0 -4
  61. package/lib/esm/data/data.battery-charge.js +0 -8
  62. package/lib/esm/data/data.battery-consumption.js +0 -8
  63. package/lib/esm/data/data.battery-current.js +0 -8
  64. package/lib/esm/data/data.battery-life-estimation.js +0 -4
  65. package/lib/esm/data/data.battery-voltage.js +0 -8
  66. package/lib/esm/data/data.bike-pod-used.js +0 -7
  67. package/lib/esm/data/data.boolean.js +0 -9
  68. package/lib/esm/data/data.cadence-avg.js +0 -4
  69. package/lib/esm/data/data.cadence-max.js +0 -4
  70. package/lib/esm/data/data.cadence-min.js +0 -4
  71. package/lib/esm/data/data.cadence.js +0 -8
  72. package/lib/esm/data/data.cycling-dynamics.js +0 -3
  73. package/lib/esm/data/data.cycling-position.js +0 -37
  74. package/lib/esm/data/data.cycling-seated-time.js +0 -5
  75. package/lib/esm/data/data.cycling-standing-time.js +0 -5
  76. package/lib/esm/data/data.descent-time.js +0 -4
  77. package/lib/esm/data/data.descent.js +0 -4
  78. package/lib/esm/data/data.description.js +0 -4
  79. package/lib/esm/data/data.device-location.js +0 -4
  80. package/lib/esm/data/data.device-names.js +0 -7
  81. package/lib/esm/data/data.distance.js +0 -15
  82. package/lib/esm/data/data.duration.js +0 -56
  83. package/lib/esm/data/data.ehpe.js +0 -5
  84. package/lib/esm/data/data.enabled-navigation-systems.js +0 -4
  85. package/lib/esm/data/data.end-altitude.js +0 -4
  86. package/lib/esm/data/data.end-position.js +0 -4
  87. package/lib/esm/data/data.energy.js +0 -8
  88. package/lib/esm/data/data.epoc.js +0 -5
  89. package/lib/esm/data/data.event.js +0 -3
  90. package/lib/esm/data/data.evpe.js +0 -4
  91. package/lib/esm/data/data.feeling.js +0 -15
  92. package/lib/esm/data/data.foot-pod-used.js +0 -7
  93. package/lib/esm/data/data.form-power.js +0 -4
  94. package/lib/esm/data/data.fused-altitude.js +0 -7
  95. package/lib/esm/data/data.fused-location.js +0 -7
  96. package/lib/esm/data/data.gnss-distance.js +0 -4
  97. package/lib/esm/data/data.grade-adjusted-pace-avg.js +0 -15
  98. package/lib/esm/data/data.grade-adjusted-pace-max.js +0 -15
  99. package/lib/esm/data/data.grade-adjusted-pace-min.js +0 -15
  100. package/lib/esm/data/data.grade-adjusted-pace.js +0 -25
  101. package/lib/esm/data/data.grade-adjusted-speed-avg.js +0 -46
  102. package/lib/esm/data/data.grade-adjusted-speed-max.js +0 -46
  103. package/lib/esm/data/data.grade-adjusted-speed-min.js +0 -46
  104. package/lib/esm/data/data.grade-adjusted-speed.js +0 -78
  105. package/lib/esm/data/data.grade-smooth.js +0 -7
  106. package/lib/esm/data/data.grade.js +0 -7
  107. package/lib/esm/data/data.ground-time.js +0 -8
  108. package/lib/esm/data/data.heart-rate-avg.js +0 -4
  109. package/lib/esm/data/data.heart-rate-max.js +0 -4
  110. package/lib/esm/data/data.heart-rate-min.js +0 -4
  111. package/lib/esm/data/data.heart-rate-used.js +0 -7
  112. package/lib/esm/data/data.heart-rate-zone-five-duration.js +0 -4
  113. package/lib/esm/data/data.heart-rate-zone-four-duration.js +0 -4
  114. package/lib/esm/data/data.heart-rate-zone-one-duration.js +0 -4
  115. package/lib/esm/data/data.heart-rate-zone-three-duration.js +0 -4
  116. package/lib/esm/data/data.heart-rate-zone-two-duration.js +0 -4
  117. package/lib/esm/data/data.heart-rate.js +0 -8
  118. package/lib/esm/data/data.ibi.js +0 -8
  119. package/lib/esm/data/data.interface.js +0 -5
  120. package/lib/esm/data/data.js +0 -62
  121. package/lib/esm/data/data.json.interface.js +0 -1
  122. package/lib/esm/data/data.latitude-degrees.js +0 -5
  123. package/lib/esm/data/data.left-balance.js +0 -4
  124. package/lib/esm/data/data.leg-stiffness.js +0 -16
  125. package/lib/esm/data/data.longitude-degrees.js +0 -5
  126. package/lib/esm/data/data.moving-time.js +0 -4
  127. package/lib/esm/data/data.number-of-satellites.js +0 -7
  128. package/lib/esm/data/data.number-of.samples.js +0 -4
  129. package/lib/esm/data/data.number.js +0 -13
  130. package/lib/esm/data/data.pace-avg.js +0 -8
  131. package/lib/esm/data/data.pace-max.js +0 -8
  132. package/lib/esm/data/data.pace-min.js +0 -8
  133. package/lib/esm/data/data.pace.js +0 -46
  134. package/lib/esm/data/data.pause.js +0 -4
  135. package/lib/esm/data/data.peak-epoc.js +0 -7
  136. package/lib/esm/data/data.peak-training-effect.js +0 -4
  137. package/lib/esm/data/data.percent.js +0 -4
  138. package/lib/esm/data/data.pool-length.js +0 -5
  139. package/lib/esm/data/data.position.interface.js +0 -1
  140. package/lib/esm/data/data.position.js +0 -18
  141. package/lib/esm/data/data.power-avg.js +0 -4
  142. package/lib/esm/data/data.power-down.js +0 -4
  143. package/lib/esm/data/data.power-intensity-factor.js +0 -5
  144. package/lib/esm/data/data.power-left.js +0 -4
  145. package/lib/esm/data/data.power-max.js +0 -4
  146. package/lib/esm/data/data.power-min.js +0 -4
  147. package/lib/esm/data/data.power-normalized.js +0 -4
  148. package/lib/esm/data/data.power-pedal-smoothness-left.js +0 -4
  149. package/lib/esm/data/data.power-pedal-smoothness-right.js +0 -4
  150. package/lib/esm/data/data.power-pod-used.js +0 -7
  151. package/lib/esm/data/data.power-right.js +0 -4
  152. package/lib/esm/data/data.power-torque-effectiveness-left.js +0 -4
  153. package/lib/esm/data/data.power-torque-effectiveness-right.js +0 -4
  154. package/lib/esm/data/data.power-training-stress-score.js +0 -5
  155. package/lib/esm/data/data.power-up.js +0 -4
  156. package/lib/esm/data/data.power-work.js +0 -5
  157. package/lib/esm/data/data.power-zone-five-duration.js +0 -4
  158. package/lib/esm/data/data.power-zone-four-duration.js +0 -4
  159. package/lib/esm/data/data.power-zone-one-duration.js +0 -4
  160. package/lib/esm/data/data.power-zone-three-duration.js +0 -4
  161. package/lib/esm/data/data.power-zone-two-duration.js +0 -4
  162. package/lib/esm/data/data.power.js +0 -8
  163. package/lib/esm/data/data.recovery-time.js +0 -7
  164. package/lib/esm/data/data.rider-position-change-event.js +0 -8
  165. package/lib/esm/data/data.right-balance.js +0 -4
  166. package/lib/esm/data/data.rpe.js +0 -23
  167. package/lib/esm/data/data.satellite-5-best-snr.js +0 -4
  168. package/lib/esm/data/data.sea-level-pressure.js +0 -5
  169. package/lib/esm/data/data.spec.js +0 -25
  170. package/lib/esm/data/data.speed-avg.js +0 -46
  171. package/lib/esm/data/data.speed-max.js +0 -46
  172. package/lib/esm/data/data.speed-min.js +0 -46
  173. package/lib/esm/data/data.speed-zone-five-duration.js +0 -4
  174. package/lib/esm/data/data.speed-zone-four-duration.js +0 -4
  175. package/lib/esm/data/data.speed-zone-one-duration.js +0 -4
  176. package/lib/esm/data/data.speed-zone-three-duration.js +0 -4
  177. package/lib/esm/data/data.speed-zone-two-duration.js +0 -4
  178. package/lib/esm/data/data.speed.js +0 -88
  179. package/lib/esm/data/data.sport-profile-name.js +0 -4
  180. package/lib/esm/data/data.stance-time.js +0 -5
  181. package/lib/esm/data/data.start-altitude.js +0 -4
  182. package/lib/esm/data/data.start-event.js +0 -4
  183. package/lib/esm/data/data.start-position.js +0 -4
  184. package/lib/esm/data/data.step-length.js +0 -4
  185. package/lib/esm/data/data.steps-old.js +0 -4
  186. package/lib/esm/data/data.steps.js +0 -4
  187. package/lib/esm/data/data.stop-all-event.js +0 -4
  188. package/lib/esm/data/data.stop-event.js +0 -4
  189. package/lib/esm/data/data.store.export.spec.js +0 -66
  190. package/lib/esm/data/data.store.js +0 -1213
  191. package/lib/esm/data/data.string.js +0 -13
  192. package/lib/esm/data/data.stryd-altitude.js +0 -4
  193. package/lib/esm/data/data.stryd-distance.js +0 -4
  194. package/lib/esm/data/data.stryd-speed.js +0 -4
  195. package/lib/esm/data/data.swim-pace-avg.js +0 -8
  196. package/lib/esm/data/data.swim-pace-max.js +0 -8
  197. package/lib/esm/data/data.swim-pace-min.js +0 -8
  198. package/lib/esm/data/data.swim-pace.js +0 -19
  199. package/lib/esm/data/data.swolf-25m.js +0 -4
  200. package/lib/esm/data/data.swolf-50m.js +0 -4
  201. package/lib/esm/data/data.target-distance.js +0 -4
  202. package/lib/esm/data/data.target-heart-rate-zone.js +0 -4
  203. package/lib/esm/data/data.target-power-zone.js +0 -4
  204. package/lib/esm/data/data.target-speed-zone.js +0 -4
  205. package/lib/esm/data/data.target-time.js +0 -4
  206. package/lib/esm/data/data.temperature-avg.js +0 -4
  207. package/lib/esm/data/data.temperature-max.js +0 -4
  208. package/lib/esm/data/data.temperature-min.js +0 -4
  209. package/lib/esm/data/data.temperature.js +0 -8
  210. package/lib/esm/data/data.time.js +0 -6
  211. package/lib/esm/data/data.timer-time.js +0 -4
  212. package/lib/esm/data/data.vertical-oscillation.js +0 -5
  213. package/lib/esm/data/data.vertical-ratio.js +0 -5
  214. package/lib/esm/data/data.vertical-speed-avg.js +0 -53
  215. package/lib/esm/data/data.vertical-speed-max.js +0 -53
  216. package/lib/esm/data/data.vertical-speed-min.js +0 -53
  217. package/lib/esm/data/data.vertical-speed.js +0 -103
  218. package/lib/esm/data/data.vo2-max.js +0 -7
  219. package/lib/esm/data/ibi/data.ibi.filters.js +0 -52
  220. package/lib/esm/data/ibi/data.ibi.js +0 -98
  221. package/lib/esm/data/ibi/data.ibi.spec.js +0 -66
  222. package/lib/esm/duration/duration.class.abstract.js +0 -36
  223. package/lib/esm/duration/duration.class.interface.js +0 -1
  224. package/lib/esm/errors/duration-exceeded-event-lib.error.js +0 -9
  225. package/lib/esm/errors/empty-event-sports-libs.error.js +0 -9
  226. package/lib/esm/errors/event-lib.error.js +0 -8
  227. package/lib/esm/errors/lib.error.js +0 -6
  228. package/lib/esm/errors/parsing-event-lib.error.js +0 -9
  229. package/lib/esm/events/adapters/exporters/exporter.gpx.js +0 -75
  230. package/lib/esm/events/adapters/exporters/exporter.interface.js +0 -1
  231. package/lib/esm/events/adapters/exporters/exporter.json.js +0 -20
  232. package/lib/esm/events/adapters/file-type.enum.js +0 -7
  233. package/lib/esm/events/adapters/importers/fit/importer.fit.ant-plus.device.names.js +0 -25
  234. package/lib/esm/events/adapters/importers/fit/importer.fit.coros.device.names.js +0 -5
  235. package/lib/esm/events/adapters/importers/fit/importer.fit.development.device.names.js +0 -4
  236. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.device.names.js +0 -462
  237. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.data.js +0 -877
  238. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.js +0 -106
  239. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.spec.js +0 -32
  240. package/lib/esm/events/adapters/importers/fit/importer.fit.hammerhead.device.names.js +0 -4
  241. package/lib/esm/events/adapters/importers/fit/importer.fit.integration.spec.js +0 -44
  242. package/lib/esm/events/adapters/importers/fit/importer.fit.js +0 -978
  243. package/lib/esm/events/adapters/importers/fit/importer.fit.lezyne.device.names.js +0 -3
  244. package/lib/esm/events/adapters/importers/fit/importer.fit.magellan.device.names.js +0 -5
  245. package/lib/esm/events/adapters/importers/fit/importer.fit.mapper.js +0 -231
  246. package/lib/esm/events/adapters/importers/fit/importer.fit.saris.device.names.js +0 -3
  247. package/lib/esm/events/adapters/importers/fit/importer.fit.spec.js +0 -326
  248. package/lib/esm/events/adapters/importers/fit/importer.fit.srm.device.names.js +0 -7
  249. package/lib/esm/events/adapters/importers/fit/importer.fit.suunto.device.names.js +0 -16
  250. package/lib/esm/events/adapters/importers/fit/importer.fit.wahoo.device.names.js +0 -10
  251. package/lib/esm/events/adapters/importers/gpx/gx-parser.js +0 -36
  252. package/lib/esm/events/adapters/importers/gpx/importer.gpx.integration.spec.js +0 -44
  253. package/lib/esm/events/adapters/importers/gpx/importer.gpx.js +0 -102
  254. package/lib/esm/events/adapters/importers/gpx/importer.gpx.mapper.js +0 -142
  255. package/lib/esm/events/adapters/importers/gpx/importer.gpx.spec.js +0 -71
  256. package/lib/esm/events/adapters/importers/json/importer.json.js +0 -160
  257. package/lib/esm/events/adapters/importers/sample-info.interface.js +0 -1
  258. package/lib/esm/events/adapters/importers/suunto/importer.suunto.activity.ids.js +0 -85
  259. package/lib/esm/events/adapters/importers/suunto/importer.suunto.device.names.js +0 -26
  260. package/lib/esm/events/adapters/importers/suunto/importer.suunto.integration.spec.js +0 -44
  261. package/lib/esm/events/adapters/importers/suunto/importer.suunto.json.js +0 -717
  262. package/lib/esm/events/adapters/importers/suunto/importer.suunto.sml.js +0 -125
  263. package/lib/esm/events/adapters/importers/tcx/importer.tcx.integration.spec.js +0 -46
  264. package/lib/esm/events/adapters/importers/tcx/importer.tcx.js +0 -442
  265. package/lib/esm/events/adapters/importers/tcx/importer.tcx.mapper.js +0 -91
  266. package/lib/esm/events/adapters/importers/tcx/utils.tcx.js +0 -36
  267. package/lib/esm/events/event.interface.js +0 -1
  268. package/lib/esm/events/event.js +0 -123
  269. package/lib/esm/events/event.json.interface.js +0 -1
  270. package/lib/esm/events/event.spec.js +0 -51
  271. package/lib/esm/events/utilities/activity.utilities.js +0 -1841
  272. package/lib/esm/events/utilities/activity.utilities.spec.js +0 -373
  273. package/lib/esm/events/utilities/event.utilities.js +0 -57
  274. package/lib/esm/events/utilities/grade-calculator/grade-calculator.js +0 -121
  275. package/lib/esm/events/utilities/grade-calculator/grade-calculator.spec.js +0 -93
  276. package/lib/esm/events/utilities/grade-calculator/low-pass-filter.js +0 -86
  277. package/lib/esm/events/utilities/helpers.js +0 -162
  278. package/lib/esm/geodesy/adapters/adapter.interface.js +0 -1
  279. package/lib/esm/geodesy/adapters/geolib.adapter.js +0 -28
  280. package/lib/esm/id/id.abstract.class.js +0 -9
  281. package/lib/esm/id/id.class.interface.js +0 -1
  282. package/lib/esm/id/id.class.spec.js +0 -13
  283. package/lib/esm/intensity-zones/intensity-zones.interface.js +0 -1
  284. package/lib/esm/intensity-zones/intensity-zones.js +0 -29
  285. package/lib/esm/intensity-zones/intensity-zones.json.interface.js +0 -1
  286. package/lib/esm/intensity-zones/intensity-zones.spec.js +0 -30
  287. package/lib/esm/laps/lap.interface.js +0 -1
  288. package/lib/esm/laps/lap.js +0 -29
  289. package/lib/esm/laps/lap.json.interface.js +0 -1
  290. package/lib/esm/laps/lap.types.js +0 -52
  291. package/lib/esm/meta-data/event-meta-data.interface.js +0 -6
  292. package/lib/esm/meta-data/meta-data.js +0 -57
  293. package/lib/esm/meta-data/meta-data.json.interface.js +0 -1
  294. package/lib/esm/privacy/privacy.class.interface.js +0 -5
  295. package/lib/esm/serializable/serializable.class.interface.js +0 -1
  296. package/lib/esm/service-tokens/oauth1-service-token.interface.js +0 -1
  297. package/lib/esm/service-tokens/oauth2-service-token.interface.js +0 -1
  298. package/lib/esm/specs/activities-parsing.integration.spec.js +0 -1847
  299. package/lib/esm/specs/activity-duration-stream.integration.spec.js +0 -57
  300. package/lib/esm/specs/fixtures/streams/strava/rides/3171472783.json +0 -52534
  301. package/lib/esm/specs/fixtures/streams/strava/rides/3171487458.json +0 -78818
  302. package/lib/esm/specs/fixtures/streams/strava/rides/343080886.json +0 -105090
  303. package/lib/esm/specs/fixtures/streams/strava/rides/5910143591.json +0 -110711
  304. package/lib/esm/specs/fixtures/streams/strava/runs/2451375851.json +0 -74846
  305. package/lib/esm/specs/fixtures/streams/strava/runs/2709634581.json +0 -66817
  306. package/lib/esm/specs/fixtures/streams/strava/runs/3156040843.json +0 -17594
  307. package/lib/esm/specs/fixtures/streams/strava/runs/3182900697.json +0 -17322
  308. package/lib/esm/specs/fixtures/streams/strava/runs/3183465494.json +0 -20463
  309. package/lib/esm/specs/fixtures/streams/strava/runs/3183490558.json +0 -58202
  310. package/lib/esm/specs/spec-utils.js +0 -159
  311. package/lib/esm/specs/strava-streams-compliance.spec.js +0 -951
  312. package/lib/esm/stats/stats.class.abstract.js +0 -32
  313. package/lib/esm/stats/stats.class.interface.js +0 -1
  314. package/lib/esm/stats/stats.json.interface.js +0 -1
  315. package/lib/esm/streams/compressed.stream.interface.js +0 -12
  316. package/lib/esm/streams/ibi-stream.js +0 -43
  317. package/lib/esm/streams/low-pass.stream.filter.js +0 -9
  318. package/lib/esm/streams/stream.filter.interface.js +0 -1
  319. package/lib/esm/streams/stream.interface.js +0 -1
  320. package/lib/esm/streams/stream.js +0 -72
  321. package/lib/esm/streams/stream.spec.js +0 -168
  322. package/lib/esm/tiles/tile.settings.interface.js +0 -41
  323. package/lib/esm/users/settings/dashboard/user.dashboard.settings.interface.js +0 -13
  324. package/lib/esm/users/settings/user.app.settings.interface.js +0 -5
  325. package/lib/esm/users/settings/user.chart.settings.interface.js +0 -23
  326. package/lib/esm/users/settings/user.map.settings.interface.js +0 -22
  327. package/lib/esm/users/settings/user.my-tracks.settings.interface.js +0 -1
  328. package/lib/esm/users/settings/user.settings.interface.js +0 -1
  329. package/lib/esm/users/settings/user.stats-settings.interface.js +0 -1
  330. package/lib/esm/users/settings/user.summaries.settings.interface.js +0 -1
  331. package/lib/esm/users/settings/user.unit.settings.interface.js +0 -73
  332. package/lib/esm/users/user.account.privileges.interface.js +0 -1
  333. package/lib/esm/users/user.export-to-csv.settings.interface.js +0 -1
  334. package/lib/esm/users/user.interface.js +0 -1
  335. package/lib/esm/users/user.js +0 -38
  336. package/lib/esm/users/user.service.meta.interface.js +0 -1
@@ -1,91 +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 { DataDistance } from '../../../../data/data.distance';
6
- import { DataSpeed } from '../../../../data/data.speed';
7
- import { DataPace } from '../../../../data/data.pace';
8
- import { DataPower } from '../../../../data/data.power';
9
- import { DataLongitudeDegrees } from '../../../../data/data.longitude-degrees';
10
- import { convertSpeedToPace } from '../../../utilities/helpers';
11
- import { findChildNode, findChildNodeValue, findTrackPointExtensionValue } from './utils.tcx';
12
- export const TCXSampleMapper = [
13
- {
14
- dataType: DataLatitudeDegrees.type,
15
- getSampleValue: (trackPointsElement) => {
16
- const positionChildNode = findChildNode(trackPointsElement.childNodes, 'Position');
17
- if (!positionChildNode) {
18
- return null;
19
- }
20
- return findChildNodeValue(positionChildNode.childNodes, 'LatitudeDegrees');
21
- }
22
- },
23
- {
24
- dataType: DataLongitudeDegrees.type,
25
- getSampleValue: (trackPointsElement) => {
26
- const positionChildNode = findChildNode(trackPointsElement.childNodes, 'Position');
27
- if (!positionChildNode) {
28
- return null;
29
- }
30
- return findChildNodeValue(positionChildNode.childNodes, 'LongitudeDegrees');
31
- }
32
- },
33
- {
34
- dataType: DataDistance.type,
35
- getSampleValue: (trackPointsElement) => {
36
- return findChildNodeValue(trackPointsElement.childNodes, 'DistanceMeters');
37
- }
38
- },
39
- {
40
- dataType: DataAltitude.type,
41
- getSampleValue: (trackPointsElement) => {
42
- return findChildNodeValue(trackPointsElement.childNodes, 'AltitudeMeters');
43
- }
44
- },
45
- {
46
- dataType: DataCadence.type,
47
- getSampleValue: (trackPointsElement) => {
48
- return findChildNodeValue(trackPointsElement.childNodes, 'Cadence');
49
- }
50
- },
51
- {
52
- dataType: DataHeartRate.type,
53
- getSampleValue: (trackPointsElement) => {
54
- const heartRateChildNode = findChildNode(trackPointsElement.childNodes, 'HeartRateBpm');
55
- if (!heartRateChildNode) {
56
- return null;
57
- }
58
- return findChildNodeValue(heartRateChildNode.childNodes, 'Value');
59
- }
60
- },
61
- {
62
- dataType: DataCadence.type,
63
- getSampleValue: (trackPointsElement) => {
64
- return findTrackPointExtensionValue(trackPointsElement.childNodes, 'RunCadence');
65
- }
66
- },
67
- {
68
- dataType: DataSpeed.type,
69
- getSampleValue: (trackPointsElement) => {
70
- return findTrackPointExtensionValue(trackPointsElement.childNodes, 'Speed');
71
- }
72
- },
73
- {
74
- dataType: DataPace.type,
75
- getSampleValue: (trackPointsElement) => {
76
- const speed = findTrackPointExtensionValue(trackPointsElement.childNodes, 'Speed');
77
- return speed !== null ? convertSpeedToPace(speed) : null;
78
- }
79
- },
80
- {
81
- dataType: DataPower.type,
82
- getSampleValue: (trackPointsElement, sampleInfo) => {
83
- // Ensure power stream compliance when in some cases power sample field could be missing even if others samples have it
84
- // Just set watts to 0 when this happen
85
- // Case example: ride file "7555170032.tcx" from integration tests
86
- return (sampleInfo === null || sampleInfo === void 0 ? void 0 : sampleInfo.hasPowerMeter)
87
- ? findTrackPointExtensionValue(trackPointsElement.childNodes, 'Watts') || 0
88
- : null;
89
- }
90
- }
91
- ];
@@ -1,36 +0,0 @@
1
- export const findChildNode = (fromNodeList, childNodeName) => {
2
- const childNodeFound = Array.from(fromNodeList).find((childNode) => {
3
- return childNode.nodeName === childNodeName || childNode.nodeName.match(childNodeName) !== null;
4
- });
5
- return childNodeFound ? childNodeFound : null;
6
- };
7
- export const findChildNodeValue = (fromNodeList, childNodeName) => {
8
- var _a, _b;
9
- const predicate = (childNode) => childNode.nodeName === childNodeName || childNode.nodeName.match(childNodeName) !== null;
10
- let value = (_b = (_a = Array.from(fromNodeList).find(predicate)) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.nodeValue;
11
- value = value !== undefined ? value : null;
12
- if (value === null) {
13
- return null;
14
- }
15
- return Number(value);
16
- };
17
- // Fetch activity track point extensions according https://www8.garmin.com/xmlschemas/ActivityExtensionv2.xsd schema
18
- export const findTrackPointExtensionValue = (childNodes, extensionName) => {
19
- return findExtensionValue(childNodes, extensionName, 'TPX');
20
- };
21
- // Fetch activity lap extensions according https://www8.garmin.com/xmlschemas/ActivityExtensionv2.xsd schema
22
- export const findLapExtensionValue = (childNodes, extensionName) => {
23
- return findExtensionValue(childNodes, extensionName, 'LX');
24
- };
25
- export const findExtensionValue = (childNodes, extensionName, namespace) => {
26
- const trackPointsChild = findChildNode(childNodes, 'Extensions');
27
- if (!trackPointsChild) {
28
- return null;
29
- }
30
- const tpxChildNode = findChildNode(trackPointsChild.childNodes, new RegExp(`${namespace}$`, 'gi'));
31
- if (tpxChildNode) {
32
- const value = findChildNodeValue(tpxChildNode.childNodes, new RegExp(extensionName + '$'));
33
- return value !== null ? Number(value) : null;
34
- }
35
- return null;
36
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,123 +0,0 @@
1
- import { DurationClassAbstract } from '../duration/duration.class.abstract';
2
- import { Privacy } from '../privacy/privacy.class.interface';
3
- import { ActivityTypes } from '../activities/activity.types';
4
- import { DataActivityTypes } from '../data/data.activity-types';
5
- import { DataDeviceNames } from '../data/data.device-names';
6
- export class Event extends DurationClassAbstract {
7
- constructor(name, startDate, endDate, srcFileType, privacy, description, isMerge = false) {
8
- super(startDate, endDate);
9
- this.privacy = Privacy.Private;
10
- this.activities = [];
11
- this.name = name;
12
- this.srcFileType = srcFileType;
13
- if (privacy) {
14
- this.privacy = privacy;
15
- }
16
- if (description) {
17
- this.description = description;
18
- }
19
- this.isMerge = isMerge;
20
- }
21
- addActivity(activity) {
22
- this.activities.push(activity);
23
- }
24
- addActivities(activities) {
25
- activities.forEach(activity => this.addActivity(activity));
26
- }
27
- clearActivities() {
28
- this.activities = [];
29
- }
30
- removeActivity(activityToRemove) {
31
- this.activities = this.activities.filter(activity => activityToRemove.getID() !== activity.getID());
32
- }
33
- getActivities() {
34
- this.sortActivities(); // PErhaps move on adding ? Lets check performance
35
- return this.activities;
36
- }
37
- getFirstActivity() {
38
- return this.getActivities().reduce((activityA, activityB) => {
39
- return activityA.startDate < activityB.startDate ? activityA : activityB;
40
- });
41
- }
42
- getLastActivity() {
43
- return this.getActivities().reduce((activityA, activityB) => {
44
- return activityA.startDate < activityB.startDate ? activityB : activityA;
45
- });
46
- }
47
- getActivityTypesAsArray() {
48
- const activityTypesStat = this.getStat(DataActivityTypes.type);
49
- if (!activityTypesStat) {
50
- throw new Error(`Event with id ${this.getID()} has no activity types`);
51
- }
52
- return activityTypesStat.getValue();
53
- }
54
- getActivityTypesAsString() {
55
- const activityTypesStat = this.getStat(DataActivityTypes.type);
56
- if (!activityTypesStat) {
57
- throw new Error(`Event with id ${this.getID()} has no activity types`);
58
- }
59
- return activityTypesStat.getValue().length > 1
60
- ? `${this.getUniqueStringWithMultiplier(activityTypesStat
61
- .getValue()
62
- .map((activityType) => ActivityTypes[activityType]))}`
63
- : ActivityTypes[activityTypesStat.getDisplayValue()];
64
- }
65
- getDeviceNamesAsString() {
66
- const deviceNamesStat = this.getStat(DataDeviceNames.type);
67
- if (!deviceNamesStat) {
68
- throw new Error(`Event with id ${this.getID()} has no device names`);
69
- }
70
- return `${this.getUniqueStringWithMultiplier(deviceNamesStat.getValue())}`;
71
- }
72
- sortActivities() {
73
- this.activities.sort((activityA, activityB) => {
74
- return +activityA.startDate - +activityB.startDate;
75
- });
76
- }
77
- getUniqueStringWithMultiplier(arrayOfStrings) {
78
- const uniqueObject = arrayOfStrings.reduce((uniqueObj, type, index) => {
79
- if (!uniqueObj[type]) {
80
- uniqueObj[type] = 1;
81
- }
82
- else {
83
- uniqueObj[type] += 1;
84
- }
85
- return uniqueObj;
86
- }, {});
87
- return Object.keys(uniqueObject)
88
- .reduce((uniqueArray, key, index, object) => {
89
- if (uniqueObject[key] === 1) {
90
- uniqueArray.push(key);
91
- }
92
- else {
93
- uniqueArray.push(uniqueObject[key] + 'x ' + key);
94
- }
95
- return uniqueArray;
96
- }, [])
97
- .join(', ');
98
- }
99
- isMultiSport() {
100
- return !this.isMerge && this.getActivities().length > 1;
101
- }
102
- toJSON() {
103
- const stats = {};
104
- this.stats.forEach((value, key) => {
105
- Object.assign(stats, value.toJSON());
106
- });
107
- return {
108
- name: this.name,
109
- srcFileType: this.srcFileType,
110
- description: this.description || null,
111
- privacy: this.privacy,
112
- startDate: this.startDate.getTime(),
113
- endDate: this.endDate.getTime(),
114
- stats: stats,
115
- isMerge: this.isMerge,
116
- activities: this.getActivities().reduce((activities, activity) => {
117
- const jsonActivity = activity.toJSON();
118
- activities.push(jsonActivity);
119
- return activities;
120
- }, [])
121
- };
122
- }
123
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,51 +0,0 @@
1
- import { Event } from './event';
2
- import { Activity } from '../activities/activity';
3
- import { Creator } from '../creators/creator';
4
- import { ActivityTypes } from '../activities/activity.types';
5
- import { FileType } from './adapters/file-type.enum';
6
- describe('Event', () => {
7
- let event;
8
- beforeEach(() => {
9
- event = new Event('Test', new Date(0), new Date(200), FileType.FIT);
10
- event.description = 'Test';
11
- });
12
- it('should add an activity', () => {
13
- expect(event.getActivities().length).toBe(0);
14
- event.addActivity(new Activity(new Date(0), new Date(new Date(0).getTime() + 10), ActivityTypes.Running, new Creator('Test')));
15
- expect(event.getActivities().length).toBe(1);
16
- });
17
- it('should remove an activity', () => {
18
- const activity = new Activity(new Date(0), new Date(new Date(0).getTime() + 10), ActivityTypes.Running, new Creator('Test'));
19
- event.addActivity(activity);
20
- expect(event.getActivities().length).toBe(1);
21
- event.removeActivity(activity);
22
- expect(event.getActivities().length).toBe(0);
23
- });
24
- it('should get the first and the last activity', () => {
25
- const activityA = new Activity(new Date(20), new Date(30), ActivityTypes.Running, new Creator('Test'));
26
- const activityB = new Activity(new Date(0), new Date(10), ActivityTypes.Running, new Creator('Test'));
27
- event.addActivity(activityA);
28
- event.addActivity(activityB);
29
- // Should get them sorted by date
30
- expect(event.getFirstActivity()).toEqual(activityB);
31
- expect(event.getLastActivity()).toEqual(activityA);
32
- });
33
- it('should export correctly to JSON', () => {
34
- const d1 = new Date(0);
35
- const d2 = new Date(new Date(0).getTime() + 200);
36
- const activity = new Activity(d1, d2, ActivityTypes.Running, new Creator('Test'));
37
- event.addActivity(activity);
38
- event.setID('123');
39
- expect(event.toJSON()).toEqual({
40
- name: 'Test',
41
- description: 'Test',
42
- isMerge: false,
43
- privacy: 'private',
44
- srcFileType: FileType.FIT,
45
- stats: {},
46
- activities: [activity.toJSON()],
47
- startDate: d1.getTime(),
48
- endDate: d2.getTime()
49
- });
50
- });
51
- });