incyclist-services 1.7.64 → 1.7.66

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 (559) hide show
  1. package/lib/cjs/devices/configuration/service.js +2 -1
  2. package/lib/cjs/devices/pairing/service.js +5 -1
  3. package/lib/cjs/devices/ride/service.js +7 -0
  4. package/lib/cjs/package.json +68 -0
  5. package/lib/cjs/src/activities/active-rides/index.js +18 -0
  6. package/lib/cjs/src/activities/active-rides/mq.js +190 -0
  7. package/lib/cjs/src/activities/active-rides/service.js +874 -0
  8. package/lib/cjs/src/activities/active-rides/sessions.js +0 -0
  9. package/lib/cjs/src/activities/active-rides/types.js +2 -0
  10. package/lib/cjs/src/activities/base/api/active-rides/api.js +121 -0
  11. package/lib/cjs/src/activities/base/api/active-rides/index.js +18 -0
  12. package/lib/cjs/src/activities/base/api/active-rides/types.js +2 -0
  13. package/lib/cjs/src/activities/base/api/fitconvert/consts.js +5 -0
  14. package/lib/cjs/src/activities/base/api/fitconvert/fitconvert.js +97 -0
  15. package/lib/cjs/src/activities/base/api/fitconvert/index.js +17 -0
  16. package/lib/cjs/src/activities/base/api/index.js +17 -0
  17. package/lib/cjs/src/activities/base/convert/converter.js +21 -0
  18. package/lib/cjs/src/activities/base/convert/factory.js +75 -0
  19. package/lib/cjs/src/activities/base/convert/fit/index.js +18 -0
  20. package/lib/cjs/src/activities/base/convert/fit/local-fit.js +240 -0
  21. package/lib/cjs/src/activities/base/convert/fit/remote-fit.js +55 -0
  22. package/lib/cjs/src/activities/base/convert/index.js +20 -0
  23. package/lib/cjs/src/activities/base/convert/tcx/index.js +17 -0
  24. package/lib/cjs/src/activities/base/convert/tcx/tcx.js +210 -0
  25. package/lib/cjs/src/activities/base/convert/tcx/types.js +2 -0
  26. package/lib/cjs/src/activities/base/convert/types.js +9 -0
  27. package/lib/cjs/src/activities/base/index.js +21 -0
  28. package/lib/cjs/src/activities/base/model/index.js +9 -0
  29. package/lib/cjs/src/activities/base/repo/db.js +521 -0
  30. package/lib/cjs/src/activities/base/repo/index.js +18 -0
  31. package/lib/cjs/src/activities/base/repo/migration/factory.js +25 -0
  32. package/lib/cjs/src/activities/base/repo/migration/types.js +17 -0
  33. package/lib/cjs/src/activities/base/repo/migration/v0.js +18 -0
  34. package/lib/cjs/src/activities/base/repo/migration/v1.js +19 -0
  35. package/lib/cjs/src/activities/base/repo/migration/v2.js +11 -0
  36. package/lib/cjs/src/activities/base/repo/migration/v3.js +27 -0
  37. package/lib/cjs/src/activities/base/repo/types.js +2 -0
  38. package/lib/cjs/src/activities/base/utils/activity.js +327 -0
  39. package/lib/cjs/src/activities/base/utils/helpers.js +66 -0
  40. package/lib/cjs/src/activities/base/utils/index.js +18 -0
  41. package/lib/cjs/src/activities/index.js +22 -0
  42. package/lib/cjs/src/activities/list/index.js +18 -0
  43. package/lib/cjs/src/activities/list/service.js +463 -0
  44. package/lib/cjs/src/activities/list/types.js +2 -0
  45. package/lib/cjs/src/activities/list/utils.js +88 -0
  46. package/lib/cjs/src/activities/page/index.js +17 -0
  47. package/lib/cjs/src/activities/page/service.js +177 -0
  48. package/lib/cjs/src/activities/page/types.js +2 -0
  49. package/lib/cjs/src/activities/ride/duration.js +140 -0
  50. package/lib/cjs/src/activities/ride/index.js +17 -0
  51. package/lib/cjs/src/activities/ride/service.js +1331 -0
  52. package/lib/cjs/src/activities/ride/stats.js +197 -0
  53. package/lib/cjs/src/activities/ride/types.js +2 -0
  54. package/lib/cjs/src/activities/types.js +18 -0
  55. package/lib/cjs/src/activities/upload/factory.js +93 -0
  56. package/lib/cjs/src/activities/upload/index.js +21 -0
  57. package/lib/cjs/src/activities/upload/intervals.js +144 -0
  58. package/lib/cjs/src/activities/upload/strava.js +154 -0
  59. package/lib/cjs/src/activities/upload/types.js +2 -0
  60. package/lib/cjs/src/activities/upload/velohero.js +136 -0
  61. package/lib/cjs/src/api/appInfo/index.js +2 -0
  62. package/lib/cjs/src/api/bindings/index.js +78 -0
  63. package/lib/cjs/src/api/bindings/types.js +2 -0
  64. package/lib/cjs/src/api/crypto/types.js +2 -0
  65. package/lib/cjs/src/api/download/index.js +2 -0
  66. package/lib/cjs/src/api/form/types.js +2 -0
  67. package/lib/cjs/src/api/fs/index.js +2 -0
  68. package/lib/cjs/src/api/index.js +20 -0
  69. package/lib/cjs/src/api/logging/types.js +2 -0
  70. package/lib/cjs/src/api/mq/index.js +2 -0
  71. package/lib/cjs/src/api/path/index.js +21 -0
  72. package/lib/cjs/src/api/repository/index.js +21 -0
  73. package/lib/cjs/src/api/repository/json/index.js +121 -0
  74. package/lib/cjs/src/api/repository/types.js +2 -0
  75. package/lib/cjs/src/api/rest/RestApiClient.js +16 -0
  76. package/lib/cjs/src/api/rest/api.js +74 -0
  77. package/lib/cjs/src/api/rest/incyclist.js +37 -0
  78. package/lib/cjs/src/api/rest/index.js +19 -0
  79. package/lib/cjs/src/api/rest/types.js +2 -0
  80. package/lib/cjs/src/api/secret/index.js +2 -0
  81. package/lib/cjs/src/api/serial/types.js +2 -0
  82. package/lib/cjs/src/api/types.js +2 -0
  83. package/lib/cjs/src/api/ui/index.js +2 -0
  84. package/lib/cjs/src/api/video/index.js +2 -0
  85. package/lib/cjs/src/apps/base/api/base.js +62 -0
  86. package/lib/cjs/src/apps/base/api/index.js +20 -0
  87. package/lib/cjs/src/apps/base/api/intervals/api.js +131 -0
  88. package/lib/cjs/src/apps/base/api/intervals/index.js +18 -0
  89. package/lib/cjs/src/apps/base/api/intervals/types.js +15 -0
  90. package/lib/cjs/src/apps/base/api/komoot/api.js +141 -0
  91. package/lib/cjs/src/apps/base/api/komoot/index.js +18 -0
  92. package/lib/cjs/src/apps/base/api/komoot/types.js +2 -0
  93. package/lib/cjs/src/apps/base/api/strava/api.js +221 -0
  94. package/lib/cjs/src/apps/base/api/strava/index.js +18 -0
  95. package/lib/cjs/src/apps/base/api/strava/types.js +11 -0
  96. package/lib/cjs/src/apps/base/api/velohero/api.js +84 -0
  97. package/lib/cjs/src/apps/base/api/velohero/index.js +18 -0
  98. package/lib/cjs/src/apps/base/api/velohero/types.js +2 -0
  99. package/lib/cjs/src/apps/base/app/index.js +107 -0
  100. package/lib/cjs/src/apps/base/index.js +19 -0
  101. package/lib/cjs/src/apps/base/types.js +2 -0
  102. package/lib/cjs/src/apps/googleMaps/index.js +17 -0
  103. package/lib/cjs/src/apps/googleMaps/service.js +125 -0
  104. package/lib/cjs/src/apps/index.js +21 -0
  105. package/lib/cjs/src/apps/intervals/IntervalsAppConnection.js +186 -0
  106. package/lib/cjs/src/apps/intervals/index.js +0 -0
  107. package/lib/cjs/src/apps/intervals/types.js +2 -0
  108. package/lib/cjs/src/apps/komoot/KomootAppConnection.js +248 -0
  109. package/lib/cjs/src/apps/komoot/index.js +18 -0
  110. package/lib/cjs/src/apps/komoot/types.js +2 -0
  111. package/lib/cjs/src/apps/service.js +193 -0
  112. package/lib/cjs/src/apps/strava/StravaAppConnection.js +193 -0
  113. package/lib/cjs/src/apps/strava/index.js +18 -0
  114. package/lib/cjs/src/apps/strava/types.js +2 -0
  115. package/lib/cjs/src/apps/types.js +2 -0
  116. package/lib/cjs/src/apps/velohero/VeloHeroAppConnection.js +232 -0
  117. package/lib/cjs/src/apps/velohero/index.js +18 -0
  118. package/lib/cjs/src/apps/velohero/types.js +2 -0
  119. package/lib/cjs/src/appstate/index.js +18 -0
  120. package/lib/cjs/src/appstate/service.js +111 -0
  121. package/lib/cjs/src/appstate/types.js +2 -0
  122. package/lib/cjs/src/autoupdate/api.js +179 -0
  123. package/lib/cjs/src/autoupdate/autoupdate.js +28 -0
  124. package/lib/cjs/src/autoupdate/index.js +18 -0
  125. package/lib/cjs/src/avatars/index.js +18 -0
  126. package/lib/cjs/src/avatars/service.js +138 -0
  127. package/lib/cjs/src/avatars/types.js +2 -0
  128. package/lib/cjs/src/base/cardlist/index.js +43 -0
  129. package/lib/cjs/src/base/cardlist/types.js +2 -0
  130. package/lib/cjs/src/base/decorators/Injection.js +28 -0
  131. package/lib/cjs/src/base/decorators/index.js +18 -0
  132. package/lib/cjs/src/base/pages/index.js +17 -0
  133. package/lib/cjs/src/base/pages/service.js +127 -0
  134. package/lib/cjs/src/base/pages/types.js +2 -0
  135. package/lib/cjs/src/base/service.js +36 -0
  136. package/lib/cjs/src/base/typedefs.js +2 -0
  137. package/lib/cjs/src/base/types/index.js +19 -0
  138. package/lib/cjs/src/base/types/lists.js +22 -0
  139. package/lib/cjs/src/base/types/observer.js +80 -0
  140. package/lib/cjs/src/base/types/singleton.js +23 -0
  141. package/lib/cjs/src/coaches/coach.js +165 -0
  142. package/lib/cjs/src/coaches/index.js +19 -0
  143. package/lib/cjs/src/coaches/service.js +298 -0
  144. package/lib/cjs/src/coaches/types.js +2 -0
  145. package/lib/cjs/src/devices/access/index.js +18 -0
  146. package/lib/cjs/src/devices/access/model.js +2 -0
  147. package/lib/cjs/src/devices/access/service.js +519 -0
  148. package/lib/cjs/src/devices/configuration/index.js +18 -0
  149. package/lib/cjs/src/devices/configuration/model/app/index.js +2 -0
  150. package/lib/cjs/src/devices/configuration/model/index.js +19 -0
  151. package/lib/cjs/src/devices/configuration/model/repository/index.js +17 -0
  152. package/lib/cjs/src/devices/configuration/model/repository/legacy.js +2 -0
  153. package/lib/cjs/src/devices/configuration/model/service/index.js +2 -0
  154. package/lib/cjs/src/devices/configuration/service.js +1004 -0
  155. package/lib/cjs/src/devices/configuration/types.js +2 -0
  156. package/lib/cjs/src/devices/index.js +21 -0
  157. package/lib/cjs/src/devices/page/index.js +17 -0
  158. package/lib/cjs/src/devices/page/logobserver.js +19 -0
  159. package/lib/cjs/src/devices/page/service.js +426 -0
  160. package/lib/cjs/src/devices/page/statemachine.js +338 -0
  161. package/lib/cjs/src/devices/page/types.js +2 -0
  162. package/lib/cjs/src/devices/pairing/index.js +18 -0
  163. package/lib/cjs/src/devices/pairing/model.js +2 -0
  164. package/lib/cjs/src/devices/pairing/service.js +1509 -0
  165. package/lib/cjs/src/devices/ride/index.js +17 -0
  166. package/lib/cjs/src/devices/ride/service.js +1402 -0
  167. package/lib/cjs/src/devices/ride/types.js +2 -0
  168. package/lib/cjs/src/devices/types.js +2 -0
  169. package/lib/cjs/src/i18n/countries/countries.json +255 -0
  170. package/lib/cjs/src/i18n/countries/index.js +17 -0
  171. package/lib/cjs/src/i18n/countries/model.js +2 -0
  172. package/lib/cjs/src/i18n/countries/service.js +125 -0
  173. package/lib/cjs/src/i18n/index.js +19 -0
  174. package/lib/cjs/src/i18n/localization/index.js +18 -0
  175. package/lib/cjs/src/i18n/localization/service.js +129 -0
  176. package/lib/cjs/src/i18n/localization/types.js +2 -0
  177. package/lib/cjs/src/i18n/units/converter.js +177 -0
  178. package/lib/cjs/src/i18n/units/index.js +18 -0
  179. package/lib/cjs/src/i18n/units/types.js +2 -0
  180. package/lib/cjs/src/index.js +40 -0
  181. package/lib/cjs/src/maps/MapArea/MapArea.js +403 -0
  182. package/lib/cjs/src/maps/MapArea/consts.js +11 -0
  183. package/lib/cjs/src/maps/MapArea/index.js +19 -0
  184. package/lib/cjs/src/maps/MapArea/options.js +417 -0
  185. package/lib/cjs/src/maps/MapArea/service.js +298 -0
  186. package/lib/cjs/src/maps/MapArea/types.js +2 -0
  187. package/lib/cjs/src/maps/MapArea/utils.js +601 -0
  188. package/lib/cjs/src/maps/index.js +17 -0
  189. package/lib/cjs/src/monitoring/index.js +17 -0
  190. package/lib/cjs/src/monitoring/online/index.js +17 -0
  191. package/lib/cjs/src/monitoring/online/service.js +117 -0
  192. package/lib/cjs/src/ride/base/base.js +231 -0
  193. package/lib/cjs/src/ride/base/index.js +17 -0
  194. package/lib/cjs/src/ride/base/types.js +2 -0
  195. package/lib/cjs/src/ride/display/index.js +17 -0
  196. package/lib/cjs/src/ride/display/service.js +1139 -0
  197. package/lib/cjs/src/ride/index.js +19 -0
  198. package/lib/cjs/src/ride/page/index.js +17 -0
  199. package/lib/cjs/src/ride/page/service.js +380 -0
  200. package/lib/cjs/src/ride/page/types.js +2 -0
  201. package/lib/cjs/src/ride/route/FollowRouteDisplayService.js +36 -0
  202. package/lib/cjs/src/ride/route/FreeRideDisplayService.js +602 -0
  203. package/lib/cjs/src/ride/route/GpxDisplayService.js +322 -0
  204. package/lib/cjs/src/ride/route/RLVDisplayService.js +591 -0
  205. package/lib/cjs/src/ride/route/RouteDisplayService.js +419 -0
  206. package/lib/cjs/src/ride/route/types.js +2 -0
  207. package/lib/cjs/src/ride/types.js +2 -0
  208. package/lib/cjs/src/ride/workout/WorkoutDisplayService.js +97 -0
  209. package/lib/cjs/src/routes/base/api/consts.js +12 -0
  210. package/lib/cjs/src/routes/base/api/index.js +158 -0
  211. package/lib/cjs/src/routes/base/api/types.js +2 -0
  212. package/lib/cjs/src/routes/base/model/route.js +120 -0
  213. package/lib/cjs/src/routes/base/model/tacx.js +31 -0
  214. package/lib/cjs/src/routes/base/model/types.js +2 -0
  215. package/lib/cjs/src/routes/base/parsers/bikelab.js +107 -0
  216. package/lib/cjs/src/routes/base/parsers/epm.js +247 -0
  217. package/lib/cjs/src/routes/base/parsers/factory.js +54 -0
  218. package/lib/cjs/src/routes/base/parsers/geometry.js +133 -0
  219. package/lib/cjs/src/routes/base/parsers/gpx.js +220 -0
  220. package/lib/cjs/src/routes/base/parsers/incyclist.js +194 -0
  221. package/lib/cjs/src/routes/base/parsers/index.js +69 -0
  222. package/lib/cjs/src/routes/base/parsers/kwt.js +8 -0
  223. package/lib/cjs/src/routes/base/parsers/multixml.js +46 -0
  224. package/lib/cjs/src/routes/base/parsers/tacx/TacxParser.js +332 -0
  225. package/lib/cjs/src/routes/base/parsers/tacx/TacxReader.js +83 -0
  226. package/lib/cjs/src/routes/base/parsers/tacx/pgmf.js +69 -0
  227. package/lib/cjs/src/routes/base/parsers/tacx/rlv.js +84 -0
  228. package/lib/cjs/src/routes/base/parsers/types.js +2 -0
  229. package/lib/cjs/src/routes/base/parsers/utils.js +245 -0
  230. package/lib/cjs/src/routes/base/parsers/xml.js +358 -0
  231. package/lib/cjs/src/routes/base/types/index.js +3 -0
  232. package/lib/cjs/src/routes/base/utils/index.js +17 -0
  233. package/lib/cjs/src/routes/base/utils/localization.js +40 -0
  234. package/lib/cjs/src/routes/base/utils/points.js +304 -0
  235. package/lib/cjs/src/routes/base/utils/route.js +585 -0
  236. package/lib/cjs/src/routes/download/service.js +260 -0
  237. package/lib/cjs/src/routes/download/types.js +19 -0
  238. package/lib/cjs/src/routes/free-ride/index.js +17 -0
  239. package/lib/cjs/src/routes/free-ride/service.js +552 -0
  240. package/lib/cjs/src/routes/index.js +21 -0
  241. package/lib/cjs/src/routes/library/service.js +639 -0
  242. package/lib/cjs/src/routes/library/types.js +2 -0
  243. package/lib/cjs/src/routes/list/RouteListObserver.js +22 -0
  244. package/lib/cjs/src/routes/list/cards/ActiveImportCard.js +88 -0
  245. package/lib/cjs/src/routes/list/cards/FreeRideCard.js +118 -0
  246. package/lib/cjs/src/routes/list/cards/RouteCard.js +917 -0
  247. package/lib/cjs/src/routes/list/cards/RouteImportCard.js +40 -0
  248. package/lib/cjs/src/routes/list/cards/base.js +72 -0
  249. package/lib/cjs/src/routes/list/cards/types.js +2 -0
  250. package/lib/cjs/src/routes/list/index.js +17 -0
  251. package/lib/cjs/src/routes/list/lists/alternatives.js +42 -0
  252. package/lib/cjs/src/routes/list/lists/myroutes.js +59 -0
  253. package/lib/cjs/src/routes/list/lists/selected.js +39 -0
  254. package/lib/cjs/src/routes/list/loaders/DBLoader.js +51 -0
  255. package/lib/cjs/src/routes/list/loaders/LegacyDB.js +141 -0
  256. package/lib/cjs/src/routes/list/loaders/StravaActivityLoader.js +287 -0
  257. package/lib/cjs/src/routes/list/loaders/api.js +224 -0
  258. package/lib/cjs/src/routes/list/loaders/db.js +343 -0
  259. package/lib/cjs/src/routes/list/loaders/types.js +118 -0
  260. package/lib/cjs/src/routes/list/service.js +1367 -0
  261. package/lib/cjs/src/routes/list/types.js +2 -0
  262. package/lib/cjs/src/routes/list/utils.js +42 -0
  263. package/lib/cjs/src/routes/page/index.js +17 -0
  264. package/lib/cjs/src/routes/page/service.js +461 -0
  265. package/lib/cjs/src/routes/page/types.js +2 -0
  266. package/lib/cjs/src/routes/sync/factory.js +122 -0
  267. package/lib/cjs/src/routes/sync/index.js +18 -0
  268. package/lib/cjs/src/routes/sync/komoot/provider.js +365 -0
  269. package/lib/cjs/src/routes/sync/types.js +2 -0
  270. package/lib/cjs/src/routes/types.js +2 -0
  271. package/lib/cjs/src/services/index.js +17 -0
  272. package/lib/cjs/src/services/overpass/index.js +17 -0
  273. package/lib/cjs/src/services/overpass/overpass.js +216 -0
  274. package/lib/cjs/src/settings/bindings/index.js +17 -0
  275. package/lib/cjs/src/settings/bindings/json.js +104 -0
  276. package/lib/cjs/src/settings/bindings/types.js +9 -0
  277. package/lib/cjs/src/settings/display/index.js +18 -0
  278. package/lib/cjs/src/settings/display/support/index.js +17 -0
  279. package/lib/cjs/src/settings/display/support/service.js +115 -0
  280. package/lib/cjs/src/settings/display/support/types.js +2 -0
  281. package/lib/cjs/src/settings/display/user/index.js +18 -0
  282. package/lib/cjs/src/settings/display/user/service.js +161 -0
  283. package/lib/cjs/src/settings/display/user/types.js +2 -0
  284. package/lib/cjs/src/settings/index.js +18 -0
  285. package/lib/cjs/src/settings/service/index.js +17 -0
  286. package/lib/cjs/src/settings/service/mock.js +36 -0
  287. package/lib/cjs/src/settings/service/service.js +237 -0
  288. package/lib/cjs/src/settings/types.js +2 -0
  289. package/lib/cjs/src/types.js +2 -0
  290. package/lib/cjs/src/ui/index.js +17 -0
  291. package/lib/cjs/src/ui/service.js +508 -0
  292. package/lib/cjs/src/ui/types.js +2 -0
  293. package/lib/cjs/src/utils/calc.js +39 -0
  294. package/lib/cjs/src/utils/clone.js +8 -0
  295. package/lib/cjs/src/utils/fileinfo.js +13 -0
  296. package/lib/cjs/src/utils/formatting.js +81 -0
  297. package/lib/cjs/src/utils/geo.js +141 -0
  298. package/lib/cjs/src/utils/index.js +49 -0
  299. package/lib/cjs/src/utils/logging.js +21 -0
  300. package/lib/cjs/src/utils/math.js +36 -0
  301. package/lib/cjs/src/utils/merge.js +29 -0
  302. package/lib/cjs/src/utils/nextTick.js +5 -0
  303. package/lib/cjs/src/utils/sleep.js +5 -0
  304. package/lib/cjs/src/utils/string.js +8 -0
  305. package/lib/cjs/src/utils/time.js +27 -0
  306. package/lib/cjs/src/utils/valid.js +14 -0
  307. package/lib/cjs/src/utils/vector.js +204 -0
  308. package/lib/cjs/src/utils/xml.js +112 -0
  309. package/lib/cjs/src/video/VideoConversion.js +170 -0
  310. package/lib/cjs/src/video/VideoSyncHelper.js +665 -0
  311. package/lib/cjs/src/video/index.js +19 -0
  312. package/lib/cjs/src/video/types.js +2 -0
  313. package/lib/cjs/src/workouts/base/api/consts.js +12 -0
  314. package/lib/cjs/src/workouts/base/api/index.js +130 -0
  315. package/lib/cjs/src/workouts/base/model/Segment.js +141 -0
  316. package/lib/cjs/src/workouts/base/model/Step.js +165 -0
  317. package/lib/cjs/src/workouts/base/model/Workout.js +114 -0
  318. package/lib/cjs/src/workouts/base/model/index.js +20 -0
  319. package/lib/cjs/src/workouts/base/model/types.js +2 -0
  320. package/lib/cjs/src/workouts/base/parsers/factory.js +90 -0
  321. package/lib/cjs/src/workouts/base/parsers/incyclist/Json.js +62 -0
  322. package/lib/cjs/src/workouts/base/parsers/index.js +39 -0
  323. package/lib/cjs/src/workouts/base/parsers/intervals/parser.js +297 -0
  324. package/lib/cjs/src/workouts/base/parsers/intervals/types.js +9 -0
  325. package/lib/cjs/src/workouts/base/parsers/types.js +2 -0
  326. package/lib/cjs/src/workouts/base/parsers/zwo/zwo.js +254 -0
  327. package/lib/cjs/src/workouts/calendar/index.js +19 -0
  328. package/lib/cjs/src/workouts/calendar/service.js +359 -0
  329. package/lib/cjs/src/workouts/calendar/sync/factory.js +127 -0
  330. package/lib/cjs/src/workouts/calendar/sync/index.js +18 -0
  331. package/lib/cjs/src/workouts/calendar/sync/intervals/provider.js +211 -0
  332. package/lib/cjs/src/workouts/calendar/sync/types.js +2 -0
  333. package/lib/cjs/src/workouts/calendar/types.js +2 -0
  334. package/lib/cjs/src/workouts/index.js +19 -0
  335. package/lib/cjs/src/workouts/list/cards/ActiveImportCard.js +72 -0
  336. package/lib/cjs/src/workouts/list/cards/ScheduledWorkoutCard.js +42 -0
  337. package/lib/cjs/src/workouts/list/cards/WorkoutCard.js +287 -0
  338. package/lib/cjs/src/workouts/list/cards/WorkoutCreateCard.js +99 -0
  339. package/lib/cjs/src/workouts/list/cards/WorkoutImportCard.js +41 -0
  340. package/lib/cjs/src/workouts/list/cards/base.js +58 -0
  341. package/lib/cjs/src/workouts/list/cards/index.js +20 -0
  342. package/lib/cjs/src/workouts/list/cards/types.js +9 -0
  343. package/lib/cjs/src/workouts/list/index.js +18 -0
  344. package/lib/cjs/src/workouts/list/loaders/api.js +50 -0
  345. package/lib/cjs/src/workouts/list/loaders/db.js +188 -0
  346. package/lib/cjs/src/workouts/list/loaders/loader.js +21 -0
  347. package/lib/cjs/src/workouts/list/service.js +663 -0
  348. package/lib/cjs/src/workouts/list/types.js +2 -0
  349. package/lib/cjs/src/workouts/ride/index.js +18 -0
  350. package/lib/cjs/src/workouts/ride/service.js +613 -0
  351. package/lib/cjs/src/workouts/ride/types.js +2 -0
  352. package/lib/esm/devices/configuration/service.js +2 -1
  353. package/lib/esm/devices/pairing/service.js +5 -1
  354. package/lib/esm/devices/ride/service.js +7 -0
  355. package/lib/esm/package.json +68 -0
  356. package/lib/esm/src/activities/active-rides/service.js +4 -4
  357. package/lib/esm/src/activities/active-rides/sessions.js +0 -1
  358. package/lib/esm/src/activities/base/convert/converter.js +2 -2
  359. package/lib/esm/src/activities/base/convert/fit/index.js +1 -0
  360. package/lib/esm/src/activities/base/convert/fit/local-fit.js +237 -0
  361. package/lib/esm/src/activities/base/convert/fit/remote-fit.js +2 -2
  362. package/lib/esm/src/activities/base/convert/tcx/tcx.js +13 -4
  363. package/lib/esm/src/activities/base/model/index.js +5 -0
  364. package/lib/esm/src/activities/base/repo/db.js +2 -2
  365. package/lib/esm/src/activities/base/utils/activity.js +5 -5
  366. package/lib/esm/src/activities/base/utils/helpers.js +4 -3
  367. package/lib/esm/src/activities/list/utils.js +1 -1
  368. package/lib/esm/src/activities/ride/duration.js +1 -1
  369. package/lib/esm/src/activities/ride/service.js +102 -62
  370. package/lib/esm/src/api/repository/json/index.js +33 -6
  371. package/lib/esm/src/api/rest/api.js +4 -1
  372. package/lib/esm/src/api/rest/incyclist.js +1 -0
  373. package/lib/esm/src/apps/base/api/intervals/api.js +1 -1
  374. package/lib/esm/src/apps/intervals/index.js +0 -1
  375. package/lib/esm/src/apps/komoot/KomootAppConnection.js +1 -1
  376. package/lib/esm/src/apps/service.js +1 -0
  377. package/lib/esm/src/apps/velohero/VeloHeroAppConnection.js +1 -1
  378. package/lib/esm/src/appstate/service.js +2 -1
  379. package/lib/esm/src/base/types/observer.js +1 -1
  380. package/lib/esm/src/coaches/coach.js +1 -1
  381. package/lib/esm/src/coaches/service.js +1 -1
  382. package/lib/esm/src/devices/access/service.js +2 -2
  383. package/lib/esm/src/devices/configuration/service.js +11 -7
  384. package/lib/esm/src/devices/page/service.js +14 -2
  385. package/lib/esm/src/devices/pairing/service.js +14 -8
  386. package/lib/esm/src/devices/ride/service.js +34 -12
  387. package/lib/esm/src/i18n/countries/index.js +1 -115
  388. package/lib/esm/src/i18n/countries/service.js +118 -0
  389. package/lib/esm/src/maps/MapArea/MapArea.js +33 -33
  390. package/lib/esm/src/maps/MapArea/options.js +68 -60
  391. package/lib/esm/src/maps/MapArea/service.js +31 -15
  392. package/lib/esm/src/maps/MapArea/utils.js +55 -53
  393. package/lib/esm/src/ride/base/base.js +3 -2
  394. package/lib/esm/src/ride/display/service.js +35 -11
  395. package/lib/esm/src/ride/page/service.js +29 -15
  396. package/lib/esm/src/ride/route/FreeRideDisplayService.js +36 -18
  397. package/lib/esm/src/ride/route/GpxDisplayService.js +9 -6
  398. package/lib/esm/src/ride/route/RLVDisplayService.js +19 -6
  399. package/lib/esm/src/ride/route/RouteDisplayService.js +24 -17
  400. package/lib/esm/src/routes/base/model/route.js +2 -5
  401. package/lib/esm/src/routes/base/parsers/bikelab.js +2 -2
  402. package/lib/esm/src/routes/base/parsers/epm.js +19 -16
  403. package/lib/esm/src/routes/base/parsers/factory.js +5 -0
  404. package/lib/esm/src/routes/base/parsers/geometry.js +10 -5
  405. package/lib/esm/src/routes/base/parsers/gpx.js +7 -1
  406. package/lib/esm/src/routes/base/parsers/incyclist.js +6 -7
  407. package/lib/esm/src/routes/base/parsers/index.js +6 -2
  408. package/lib/esm/src/routes/base/parsers/multixml.js +9 -1
  409. package/lib/esm/src/routes/base/parsers/tacx/TacxParser.js +300 -223
  410. package/lib/esm/src/routes/base/parsers/utils.js +119 -14
  411. package/lib/esm/src/routes/base/parsers/xml.js +25 -13
  412. package/lib/esm/src/routes/base/utils/points.js +2 -2
  413. package/lib/esm/src/routes/base/utils/route.js +18 -18
  414. package/lib/esm/src/routes/download/service.js +52 -21
  415. package/lib/esm/src/routes/free-ride/service.js +77 -39
  416. package/lib/esm/src/routes/library/service.js +635 -0
  417. package/lib/esm/src/routes/library/types.js +1 -0
  418. package/lib/esm/src/routes/list/cards/RouteCard.js +53 -23
  419. package/lib/esm/src/routes/list/lists/myroutes.js +1 -1
  420. package/lib/esm/src/routes/list/loaders/StravaActivityLoader.js +2 -2
  421. package/lib/esm/src/routes/list/loaders/api.js +0 -1
  422. package/lib/esm/src/routes/list/loaders/db.js +1 -0
  423. package/lib/esm/src/routes/list/service.js +69 -16
  424. package/lib/esm/src/routes/page/service.js +113 -88
  425. package/lib/esm/src/routes/sync/komoot/provider.js +1 -1
  426. package/lib/esm/src/services/overpass/overpass.js +112 -11
  427. package/lib/esm/src/settings/bindings/json.js +3 -3
  428. package/lib/esm/src/settings/display/user/service.js +2 -3
  429. package/lib/esm/src/settings/service/service.js +2 -2
  430. package/lib/esm/src/ui/service.js +33 -8
  431. package/lib/esm/src/utils/fileinfo.js +1 -1
  432. package/lib/esm/src/utils/formatting.js +3 -3
  433. package/lib/esm/src/utils/geo.js +5 -4
  434. package/lib/esm/src/utils/math.js +1 -1
  435. package/lib/esm/src/utils/vector.js +10 -10
  436. package/lib/esm/src/utils/xml.js +2 -2
  437. package/lib/esm/src/video/VideoConversion.js +3 -3
  438. package/lib/esm/src/video/VideoSyncHelper.js +29 -18
  439. package/lib/esm/src/workouts/base/model/Segment.js +1 -1
  440. package/lib/esm/src/workouts/base/model/Workout.js +2 -2
  441. package/lib/esm/src/workouts/base/parsers/incyclist/Json.js +3 -1
  442. package/lib/esm/src/workouts/base/parsers/intervals/parser.js +4 -2
  443. package/lib/esm/src/workouts/base/parsers/zwo/zwo.js +9 -6
  444. package/lib/esm/src/workouts/calendar/sync/intervals/provider.js +1 -1
  445. package/lib/esm/src/workouts/ride/service.js +2 -1
  446. package/lib/types/src/activities/active-rides/mq.d.ts +2 -2
  447. package/lib/types/src/activities/active-rides/service.d.ts +5 -5
  448. package/lib/types/src/activities/base/convert/fit/index.d.ts +1 -0
  449. package/lib/types/src/activities/base/convert/fit/local-fit.d.ts +16 -0
  450. package/lib/types/src/activities/base/convert/tcx/tcx.d.ts +3 -1
  451. package/lib/types/src/activities/base/model/index.d.ts +4 -0
  452. package/lib/types/src/activities/base/repo/db.d.ts +2 -2
  453. package/lib/types/src/activities/base/utils/activity.d.ts +3 -3
  454. package/lib/types/src/activities/page/service.d.ts +1 -1
  455. package/lib/types/src/activities/ride/duration.d.ts +1 -1
  456. package/lib/types/src/activities/ride/service.d.ts +32 -64
  457. package/lib/types/src/activities/ride/stats.d.ts +1 -1
  458. package/lib/types/src/activities/ride/types.d.ts +16 -0
  459. package/lib/types/src/activities/upload/intervals.d.ts +2 -2
  460. package/lib/types/src/activities/upload/strava.d.ts +2 -2
  461. package/lib/types/src/activities/upload/velohero.d.ts +2 -2
  462. package/lib/types/src/api/download/index.d.ts +2 -1
  463. package/lib/types/src/api/fs/index.d.ts +13 -2
  464. package/lib/types/src/api/mq/index.d.ts +3 -1
  465. package/lib/types/src/api/path/index.d.ts +1 -1
  466. package/lib/types/src/api/repository/json/index.d.ts +5 -4
  467. package/lib/types/src/api/repository/types.d.ts +1 -2
  468. package/lib/types/src/api/rest/types.d.ts +1 -0
  469. package/lib/types/src/api/ui/index.d.ts +1 -0
  470. package/lib/types/src/api/video/index.d.ts +1 -1
  471. package/lib/types/src/apps/base/api/base.d.ts +1 -1
  472. package/lib/types/src/apps/base/api/strava/api.d.ts +1 -1
  473. package/lib/types/src/apps/base/app/index.d.ts +1 -1
  474. package/lib/types/src/apps/googleMaps/service.d.ts +1 -1
  475. package/lib/types/src/apps/intervals/IntervalsAppConnection.d.ts +1 -1
  476. package/lib/types/src/apps/komoot/KomootAppConnection.d.ts +2 -2
  477. package/lib/types/src/apps/service.d.ts +4 -4
  478. package/lib/types/src/apps/strava/StravaAppConnection.d.ts +3 -3
  479. package/lib/types/src/apps/velohero/VeloHeroAppConnection.d.ts +2 -3
  480. package/lib/types/src/autoupdate/autoupdate.d.ts +1 -1
  481. package/lib/types/src/base/decorators/Injection.d.ts +1 -1
  482. package/lib/types/src/base/service.d.ts +1 -1
  483. package/lib/types/src/base/types/observer.d.ts +1 -2
  484. package/lib/types/src/coaches/coach.d.ts +1 -1
  485. package/lib/types/src/devices/configuration/service.d.ts +1 -1
  486. package/lib/types/src/devices/page/service.d.ts +1 -0
  487. package/lib/types/src/devices/pairing/service.d.ts +12 -12
  488. package/lib/types/src/devices/ride/service.d.ts +10 -9
  489. package/lib/types/src/devices/types.d.ts +2 -0
  490. package/lib/types/src/i18n/countries/index.d.ts +1 -17
  491. package/lib/types/src/i18n/countries/model.d.ts +6 -3
  492. package/lib/types/src/i18n/countries/service.d.ts +18 -0
  493. package/lib/types/src/i18n/units/converter.d.ts +4 -4
  494. package/lib/types/src/index.d.ts +1 -1
  495. package/lib/types/src/maps/MapArea/MapArea.d.ts +1 -1
  496. package/lib/types/src/maps/MapArea/options.d.ts +6 -6
  497. package/lib/types/src/maps/MapArea/service.d.ts +10 -9
  498. package/lib/types/src/maps/MapArea/types.d.ts +6 -2
  499. package/lib/types/src/maps/MapArea/utils.d.ts +8 -8
  500. package/lib/types/src/ride/base/types.d.ts +5 -3
  501. package/lib/types/src/ride/display/service.d.ts +11 -9
  502. package/lib/types/src/ride/page/service.d.ts +6 -8
  503. package/lib/types/src/ride/page/types.d.ts +1 -0
  504. package/lib/types/src/ride/route/FreeRideDisplayService.d.ts +7 -5
  505. package/lib/types/src/ride/route/GpxDisplayService.d.ts +10 -5
  506. package/lib/types/src/ride/route/RLVDisplayService.d.ts +10 -8
  507. package/lib/types/src/ride/route/RouteDisplayService.d.ts +20 -16
  508. package/lib/types/src/routes/base/model/route.d.ts +1 -1
  509. package/lib/types/src/routes/base/parsers/epm.d.ts +3 -1
  510. package/lib/types/src/routes/base/parsers/factory.d.ts +2 -1
  511. package/lib/types/src/routes/base/parsers/geometry.d.ts +5 -2
  512. package/lib/types/src/routes/base/parsers/gpx.d.ts +2 -0
  513. package/lib/types/src/routes/base/parsers/index.d.ts +1 -1
  514. package/lib/types/src/routes/base/parsers/multixml.d.ts +4 -2
  515. package/lib/types/src/routes/base/parsers/tacx/TacxParser.d.ts +11 -3
  516. package/lib/types/src/routes/base/parsers/types.d.ts +14 -0
  517. package/lib/types/src/routes/base/parsers/utils.d.ts +4 -0
  518. package/lib/types/src/routes/base/parsers/xml.d.ts +4 -1
  519. package/lib/types/src/routes/base/types/index.d.ts +1 -11
  520. package/lib/types/src/routes/base/utils/localization.d.ts +1 -1
  521. package/lib/types/src/routes/base/utils/points.d.ts +2 -2
  522. package/lib/types/src/routes/base/utils/route.d.ts +2 -2
  523. package/lib/types/src/routes/download/service.d.ts +6 -4
  524. package/lib/types/src/routes/free-ride/service.d.ts +5 -1
  525. package/lib/types/src/routes/library/service.d.ts +44 -0
  526. package/lib/types/src/routes/library/types.d.ts +73 -0
  527. package/lib/types/src/routes/list/cards/ActiveImportCard.d.ts +3 -3
  528. package/lib/types/src/routes/list/cards/FreeRideCard.d.ts +1 -1
  529. package/lib/types/src/routes/list/cards/RouteCard.d.ts +12 -10
  530. package/lib/types/src/routes/list/cards/RouteImportCard.d.ts +1 -1
  531. package/lib/types/src/routes/list/cards/types.d.ts +4 -2
  532. package/lib/types/src/routes/list/loaders/StravaActivityLoader.d.ts +3 -3
  533. package/lib/types/src/routes/list/loaders/api.d.ts +1 -1
  534. package/lib/types/src/routes/list/loaders/db.d.ts +1 -0
  535. package/lib/types/src/routes/list/service.d.ts +13 -4
  536. package/lib/types/src/routes/page/service.d.ts +18 -12
  537. package/lib/types/src/routes/page/types.d.ts +5 -9
  538. package/lib/types/src/routes/sync/komoot/provider.d.ts +1 -1
  539. package/lib/types/src/routes/types.d.ts +2 -0
  540. package/lib/types/src/services/overpass/overpass.d.ts +19 -3
  541. package/lib/types/src/ui/service.d.ts +8 -4
  542. package/lib/types/src/utils/fileinfo.d.ts +1 -1
  543. package/lib/types/src/utils/formatting.d.ts +2 -2
  544. package/lib/types/src/utils/logging.d.ts +1 -1
  545. package/lib/types/src/utils/math.d.ts +1 -1
  546. package/lib/types/src/utils/string.d.ts +1 -1
  547. package/lib/types/src/utils/vector.d.ts +1 -1
  548. package/lib/types/src/utils/xml.d.ts +1 -1
  549. package/lib/types/src/video/VideoConversion.d.ts +1 -1
  550. package/lib/types/src/video/VideoSyncHelper.d.ts +1 -1
  551. package/lib/types/src/workouts/base/model/Segment.d.ts +1 -1
  552. package/lib/types/src/workouts/base/parsers/intervals/parser.d.ts +1 -1
  553. package/lib/types/src/workouts/base/parsers/zwo/zwo.d.ts +1 -1
  554. package/lib/types/src/workouts/calendar/service.d.ts +1 -1
  555. package/lib/types/src/workouts/list/cards/ActiveImportCard.d.ts +3 -3
  556. package/lib/types/src/workouts/list/cards/WorkoutCreateCard.d.ts +1 -1
  557. package/lib/types/src/workouts/list/cards/WorkoutImportCard.d.ts +1 -1
  558. package/lib/types/src/workouts/ride/service.d.ts +4 -4
  559. package/package.json +2 -2
@@ -372,7 +372,8 @@ let DeviceConfigurationService = (() => {
372
372
  try {
373
373
  const udid = requestedUdid ||
374
374
  capabilities.find(d => d.capability === incyclist_devices_1.IncyclistCapability.Control)?.selected ||
375
- capabilities.find(d => d.capability === incyclist_devices_1.IncyclistCapability.Power)?.selected;
375
+ capabilities.find(d => d.capability === incyclist_devices_1.IncyclistCapability.Power)?.selected ||
376
+ capabilities.find(d => d.capability === incyclist_devices_1.IncyclistCapability.Speed)?.selected;
376
377
  if (!udid)
377
378
  return;
378
379
  const device = devices.find(d => d.udid === udid);
@@ -919,7 +919,11 @@ let DevicePairingService = (() => {
919
919
  return false;
920
920
  const control = this.getCapability(incyclist_devices_1.IncyclistCapability.Control);
921
921
  const power = this.getCapability(incyclist_devices_1.IncyclistCapability.Power);
922
- const success = (control?.connectState === 'connected' || power?.connectState === 'connected');
922
+ const speed = this.getCapability(incyclist_devices_1.IncyclistCapability.Speed);
923
+ const controlOK = (control?.selected && control?.connectState === 'connected');
924
+ const powerOK = (!control?.selected && power?.selected && power?.connectState === 'connected');
925
+ const speedOK = (!control?.selected && !power?.selected && speed?.selected && speed?.connectState === 'connected');
926
+ const success = controlOK || powerOK || speedOK;
923
927
  this.state.canStartRide = success;
924
928
  return success;
925
929
  }
@@ -1060,6 +1060,7 @@ let DeviceRideService = (() => {
1060
1060
  this.verifySelected(selectedDevices, incyclist_devices_1.IncyclistCapability.Speed);
1061
1061
  this.verifySelected(selectedDevices, incyclist_devices_1.IncyclistCapability.Cadence);
1062
1062
  this.verifySelected(selectedDevices, incyclist_devices_1.IncyclistCapability.Power);
1063
+ const isSpeedOnlyMode = this.getCyclingMode()?.getName() === 'SpeedSensor';
1063
1064
  const { enabledCapabilities, toBeReplaced } = this.getEnabledCapabilities(adapterInfo, selectedDevices);
1064
1065
  this.logEvent({ message: 'Data Update', device: adapterInfo.adapter.getName(), data, enabledCapabilities });
1065
1066
  enabledCapabilities.forEach(capability => {
@@ -1072,6 +1073,9 @@ let DeviceRideService = (() => {
1072
1073
  break;
1073
1074
  case incyclist_devices_1.IncyclistCapability.Speed:
1074
1075
  this.data.speed = data.speed;
1076
+ if (isSpeedOnlyMode) {
1077
+ this.data.power = data.power;
1078
+ }
1075
1079
  break;
1076
1080
  case incyclist_devices_1.IncyclistCapability.Cadence:
1077
1081
  this.data.cadence = data.cadence;
@@ -1321,6 +1325,9 @@ let DeviceRideService = (() => {
1321
1325
  adapter.setCyclingMode(mode, settings);
1322
1326
  await adapter.sendInitCommands();
1323
1327
  }
1328
+ else {
1329
+ adapter.setCyclingMode(mode, settings);
1330
+ }
1324
1331
  }
1325
1332
  else {
1326
1333
  currentMode.setSettings(settings);
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "incyclist-services",
3
+ "version": "1.7.66",
4
+ "peerDependencies": {
5
+ "gd-eventlog": "^0.1.27"
6
+ },
7
+ "dependencies": {
8
+ "@garmin/fitsdk": "^21.200.0",
9
+ "axios": "^1.15.2",
10
+ "incyclist-devices": "^3.0.21",
11
+ "promise.any": "^2.0.6",
12
+ "semver": "^7.7.4",
13
+ "tcx-builder": "^1.1.1",
14
+ "uuid": "^14.0.0",
15
+ "xml2js": "^0.6.2"
16
+ },
17
+ "devDependencies": {
18
+ "@serialport/binding-mock": "^10.2.2",
19
+ "@serialport/bindings-interface": "^1.2.2",
20
+ "@types/jest": "^30.0.0",
21
+ "@types/node": "^25.6.0",
22
+ "@typescript-eslint/eslint-plugin": "^8.58.2",
23
+ "@typescript-eslint/parser": "^8.58.2",
24
+ "dotenv": "^17.4.2",
25
+ "eslint": "^9.39.4",
26
+ "formdata-node": "^6.0.3",
27
+ "jest": "^30.3.0",
28
+ "jsdoc": "^4.0.5",
29
+ "ts-jest": "^29.4.9",
30
+ "typedoc": "^0.28.19",
31
+ "typedoc-plugin-markdown": "^4.11.0",
32
+ "typedoc-plugin-no-inherit": "^1.6.1",
33
+ "typescript": "^5.9.3",
34
+ "typescript-eslint": "^8.58.2"
35
+ },
36
+ "scripts": {
37
+ "lint": "eslint . --quiet",
38
+ "buildx": "npm run lint && tsc",
39
+ "build": "npm run build:esm && npm run build:cjs",
40
+ "build:esm": "tsc -p tsconfig.esm.json",
41
+ "build:cjs": "tsc -p tsconfig.cjs.json",
42
+ "test:all": "npx jest",
43
+ "test:e2e": "npx jest --coverage -c jest.e2e-config.cjs --coverageDirectory coverage.e2e",
44
+ "test:unit": "npx jest --coverage -c jest.unit-config.cjs ",
45
+ "test": "npx jest --coverage -c jest.unit-config.cjs ",
46
+ "dev": "tsc -p tsconfig.esm.json --watch",
47
+ "docgen": "typedoc --options typedoc.json",
48
+ "docgen1": "typedoc --readme none --excludeProtected --excludePrivate --plugin typedoc-plugin-no-inherit --plugin typedoc-plugin-markdown src/index.ts",
49
+ "postversion": "git push --tags"
50
+ },
51
+ "files": [
52
+ "lib/"
53
+ ],
54
+ "module": "./lib/esm/index.js",
55
+ "main": "./lib/cjs/index.js",
56
+ "types": "./lib/types/index.d.ts",
57
+ "exports": {
58
+ ".": {
59
+ "types": "./lib/types/index.d.ts",
60
+ "import": "./lib/esm/index.js",
61
+ "require": "./lib/cjs/index.js"
62
+ }
63
+ },
64
+ "directories": {
65
+ "example": "./sample",
66
+ "lib": "./src"
67
+ }
68
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./service"), exports);
18
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
+ var useValue = arguments.length > 2;
4
+ for (var i = 0; i < initializers.length; i++) {
5
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
6
+ }
7
+ return useValue ? value : void 0;
8
+ };
9
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
10
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
11
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
12
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
13
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
14
+ var _, done = false;
15
+ for (var i = decorators.length - 1; i >= 0; i--) {
16
+ var context = {};
17
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
18
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
19
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
20
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
21
+ if (kind === "accessor") {
22
+ if (result === void 0) continue;
23
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
24
+ if (_ = accept(result.get)) descriptor.get = _;
25
+ if (_ = accept(result.set)) descriptor.set = _;
26
+ if (_ = accept(result.init)) initializers.unshift(_);
27
+ }
28
+ else if (_ = accept(result)) {
29
+ if (kind === "field") initializers.unshift(_);
30
+ else descriptor[key] = _;
31
+ }
32
+ }
33
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
34
+ done = true;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.ActiveRideListMessageQueue = void 0;
38
+ const api_1 = require("../../api");
39
+ const decorators_1 = require("../../base/decorators");
40
+ const service_1 = require("../../base/service");
41
+ let ActiveRideListMessageQueue = (() => {
42
+ let _classSuper = service_1.IncyclistService;
43
+ let _instanceExtraInitializers = [];
44
+ let _getMessageQueue_decorators;
45
+ let _getActiveRideLis_decorators;
46
+ let _getActiveRideLis_initializers = [];
47
+ let _getActiveRideLis_extraInitializers = [];
48
+ return class ActiveRideListMessageQueue extends _classSuper {
49
+ static {
50
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
51
+ _getMessageQueue_decorators = [decorators_1.Injectable];
52
+ _getActiveRideLis_decorators = [decorators_1.Injectable];
53
+ __esDecorate(this, null, _getMessageQueue_decorators, { kind: "method", name: "getMessageQueue", static: false, private: false, access: { has: obj => "getMessageQueue" in obj, get: obj => obj.getMessageQueue }, metadata: _metadata }, null, _instanceExtraInitializers);
54
+ __esDecorate(null, null, _getActiveRideLis_decorators, { kind: "field", name: "getActiveRideLis", static: false, private: false, access: { has: obj => "getActiveRideLis" in obj, get: obj => obj.getActiveRideLis, set: (obj, value) => { obj.getActiveRideLis = value; } }, metadata: _metadata }, _getActiveRideLis_initializers, _getActiveRideLis_extraInitializers);
55
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
56
+ }
57
+ onTopicMessageHandler = (__runInitializers(this, _instanceExtraInitializers), this.onTopicMessage.bind(this));
58
+ onTopicSubscribedHandler = this.onTopicSubscribed.bind(this);
59
+ subscribed = [];
60
+ hasMQErrors = false;
61
+ subscribeEnabled = false;
62
+ constructor() {
63
+ super('ActiveRides');
64
+ __runInitializers(this, _getActiveRideLis_extraInitializers);
65
+ }
66
+ onDisconnect() {
67
+ const mq = this.getMessageQueue();
68
+ if (!mq?.enabled())
69
+ return;
70
+ this.unsubscribeAll();
71
+ }
72
+ onConnect() {
73
+ const mq = this.getMessageQueue();
74
+ if (!mq?.enabled())
75
+ return;
76
+ this.enableSubscribe();
77
+ }
78
+ subscribe(topic, handler, filter) {
79
+ if (!this.subscribeEnabled)
80
+ this.enableSubscribe();
81
+ const existing = this.subscribed.find(s => s.topic === topic);
82
+ if (existing) {
83
+ existing.handler = handler;
84
+ existing.filter = filter;
85
+ if (existing.subscribed)
86
+ return;
87
+ }
88
+ if (!existing)
89
+ this.subscribed.push({ topic, filter, handler });
90
+ this.getMessageQueue()?.subscribe(topic);
91
+ }
92
+ unsubscribe(topic) {
93
+ const mq = this.getMessageQueue();
94
+ if (!mq || !mq?.enabled())
95
+ return;
96
+ const subscribed = this.subscribed ?? [];
97
+ const s = subscribed.find(s => s.topic === topic);
98
+ mq.unsubscribe(s.topic);
99
+ subscribed.splice(subscribed.indexOf(s), 1);
100
+ }
101
+ unsubscribeAll() {
102
+ const topics = this.subscribed ?? [];
103
+ const mq = this.getMessageQueue();
104
+ if (!mq || !mq.enabled())
105
+ return;
106
+ topics.forEach(s => { mq.unsubscribe(s.topic); });
107
+ this.subscribed = [];
108
+ this.disableSubscribe();
109
+ }
110
+ sendMessage(topic, payload) {
111
+ const mq = this.getMessageQueue();
112
+ if (!mq || !mq?.enabled())
113
+ return;
114
+ try {
115
+ mq.publish(topic, payload);
116
+ this.hasMQErrors = false;
117
+ }
118
+ catch (err) {
119
+ if (!this.hasMQErrors)
120
+ this.logError(err, 'sendMessage', { topic, payload });
121
+ this.hasMQErrors = true;
122
+ }
123
+ }
124
+ enableSubscribe() {
125
+ if (this.subscribeEnabled)
126
+ return;
127
+ const mq = this.getMessageQueue();
128
+ if (!mq)
129
+ return;
130
+ mq.on('mq-subscribed', this.onTopicSubscribedHandler);
131
+ mq.on('mq-message', this.onTopicMessageHandler);
132
+ this.subscribeEnabled = true;
133
+ }
134
+ disableSubscribe() {
135
+ if (!this.subscribeEnabled)
136
+ return;
137
+ const mq = this.getMessageQueue();
138
+ if (!mq)
139
+ return;
140
+ mq.off('mq-subscribed', this.onTopicSubscribedHandler);
141
+ mq.off('mq-message', this.onTopicMessageHandler);
142
+ this.subscribeEnabled = false;
143
+ }
144
+ onTopicSubscribed(topic) {
145
+ const subscribed = this.subscribed ?? [];
146
+ const existing = subscribed.find(s => s.topic === topic);
147
+ if (existing)
148
+ existing.subscribed = true;
149
+ else {
150
+ this.logEvent({ message: 'Warning: subscribe confirmation received but no existing record', topic, subscribed: subscribed.map(s => s.topic).join('') });
151
+ }
152
+ this.logEvent({ message: 'Subscribed to topic', topic });
153
+ }
154
+ onTopicMessage(topic, message) {
155
+ if (!this.subscribeEnabled)
156
+ return;
157
+ let payload;
158
+ let str;
159
+ try {
160
+ if (typeof message === 'string') {
161
+ str = message;
162
+ }
163
+ else if (message instanceof Uint8Array) {
164
+ str = Buffer.from(message.buffer).toString();
165
+ }
166
+ payload = JSON.parse(str);
167
+ }
168
+ catch (err) {
169
+ this.logError(err, 'on mq-message', { topic, mq_message: str });
170
+ }
171
+ if (!payload)
172
+ return;
173
+ let handled = false;
174
+ this.subscribed.filter(s => s.subscribed).forEach(s => {
175
+ if ((s.filter && topic.startsWith(s.filter)) || (!s.filter)) {
176
+ s.handler(topic, payload);
177
+ handled = true;
178
+ }
179
+ });
180
+ if (!handled) {
181
+ this.logEvent({ message: 'unknown topic message', topic, payload: message });
182
+ }
183
+ }
184
+ getMessageQueue() {
185
+ return (0, api_1.getBindings)().mq;
186
+ }
187
+ getActiveRideLis = __runInitializers(this, _getActiveRideLis_initializers, void 0);
188
+ };
189
+ })();
190
+ exports.ActiveRideListMessageQueue = ActiveRideListMessageQueue;