@golemio/pid 3.4.1-dev.1622321089 → 3.4.1-dev.1622952033

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 (426) hide show
  1. package/db/migrations/postgresql/20250103092631-skip-missing.js +53 -0
  2. package/db/migrations/postgresql/sqls/20250103092631-skip-missing-down.sql +184 -0
  3. package/db/migrations/postgresql/sqls/20250103092631-skip-missing-up.sql +195 -0
  4. package/dist/input-gateway/jis/JisInfotextsController.js +4 -13
  5. package/dist/input-gateway/jis/JisInfotextsController.js.map +1 -1
  6. package/dist/input-gateway/jis/JisInfotextsRouter.js +3 -12
  7. package/dist/input-gateway/jis/JisInfotextsRouter.js.map +1 -1
  8. package/dist/input-gateway/ropid-gtfs/RopidGtfsController.js +4 -13
  9. package/dist/input-gateway/ropid-gtfs/RopidGtfsController.js.map +1 -1
  10. package/dist/input-gateway/ropid-gtfs/RopidGtfsRouter.js +3 -12
  11. package/dist/input-gateway/ropid-gtfs/RopidGtfsRouter.js.map +1 -1
  12. package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js +4 -13
  13. package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js.map +1 -1
  14. package/dist/input-gateway/vehicle-positions/VehiclePositionsRouter.js +3 -12
  15. package/dist/input-gateway/vehicle-positions/VehiclePositionsRouter.js.map +1 -1
  16. package/dist/integration-engine/data-retention/workers/tasks/DeleteDataTask.js +4 -15
  17. package/dist/integration-engine/data-retention/workers/tasks/DeleteDataTask.js.map +1 -1
  18. package/dist/integration-engine/data-retention/workers/tasks/TableStorageRetentionTask.js +8 -19
  19. package/dist/integration-engine/data-retention/workers/tasks/TableStorageRetentionTask.js.map +1 -1
  20. package/dist/integration-engine/jis/datasources/JISInfotextsDataSourceFactory.js +1 -1
  21. package/dist/integration-engine/jis/datasources/JISInfotextsDataSourceFactory.js.map +1 -1
  22. package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js +56 -72
  23. package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js.map +1 -1
  24. package/dist/integration-engine/jis/repositories/JISInfotextsRopidGTFSStopsRepository.js +32 -48
  25. package/dist/integration-engine/jis/repositories/JISInfotextsRopidGTFSStopsRepository.js.map +1 -1
  26. package/dist/integration-engine/jis/repositories/JISMetadataRepository.js +24 -37
  27. package/dist/integration-engine/jis/repositories/JISMetadataRepository.js.map +1 -1
  28. package/dist/integration-engine/jis/services/JISInfotextsDataService.js +24 -35
  29. package/dist/integration-engine/jis/services/JISInfotextsDataService.js.map +1 -1
  30. package/dist/integration-engine/jis/transformations/JISInfotextsTransformation.js +2 -3
  31. package/dist/integration-engine/jis/transformations/JISInfotextsTransformation.js.map +1 -1
  32. package/dist/integration-engine/jis/workers/tasks/FetchJISInfotextsTask.js +12 -23
  33. package/dist/integration-engine/jis/workers/tasks/FetchJISInfotextsTask.js.map +1 -1
  34. package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsTask.js +4 -15
  35. package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsTask.js.map +1 -1
  36. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js +3 -12
  37. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js.map +1 -1
  38. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.js +2 -11
  39. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.js.map +1 -1
  40. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js +3 -12
  41. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js.map +1 -1
  42. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js +21 -30
  43. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js.map +1 -1
  44. package/dist/integration-engine/ropid-gtfs/RopidGtfsMetadataRepository.js +20 -29
  45. package/dist/integration-engine/ropid-gtfs/RopidGtfsMetadataRepository.js.map +1 -1
  46. package/dist/integration-engine/ropid-gtfs/data-access/RopidGtfsRepository.js +33 -52
  47. package/dist/integration-engine/ropid-gtfs/data-access/RopidGtfsRepository.js.map +1 -1
  48. package/dist/integration-engine/ropid-gtfs/data-access/RouteSubAgencyRepository.js +12 -23
  49. package/dist/integration-engine/ropid-gtfs/data-access/RouteSubAgencyRepository.js.map +1 -1
  50. package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js +12 -23
  51. package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js.map +1 -1
  52. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js +33 -44
  53. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js.map +1 -1
  54. package/dist/integration-engine/ropid-gtfs/data-access/cache/RunTripsRedisRepository.js +2 -1
  55. package/dist/integration-engine/ropid-gtfs/data-access/cache/RunTripsRedisRepository.js.map +1 -1
  56. package/dist/integration-engine/ropid-gtfs/data-access/cache/StaticFileRedisRepository.js +10 -21
  57. package/dist/integration-engine/ropid-gtfs/data-access/cache/StaticFileRedisRepository.js.map +1 -1
  58. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +15 -24
  59. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
  60. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/MinMaxStopSequencesRepository.js +3 -12
  61. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/MinMaxStopSequencesRepository.js.map +1 -1
  62. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.js +3 -12
  63. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.js.map +1 -1
  64. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripScheduleRepository.js +4 -13
  65. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripScheduleRepository.js.map +1 -1
  66. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.js +30 -41
  67. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.js.map +1 -1
  68. package/dist/integration-engine/ropid-gtfs/helpers/DataCacheManager.js +11 -22
  69. package/dist/integration-engine/ropid-gtfs/helpers/DataCacheManager.js.map +1 -1
  70. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js +1 -2
  71. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map +1 -1
  72. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSCisStopsTransformation.js +7 -16
  73. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSCisStopsTransformation.js.map +1 -1
  74. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSOisTransformation.js +3 -12
  75. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSOisTransformation.js.map +1 -1
  76. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSTransformation.js +13 -17
  77. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSTransformation.js.map +1 -1
  78. package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/PresetLogRepository.js +13 -22
  79. package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/PresetLogRepository.js.map +1 -1
  80. package/dist/integration-engine/ropid-gtfs/workers/presets/datasources/grafana-loki/GrafanaLokiDataSourceProvider.js +1 -2
  81. package/dist/integration-engine/ropid-gtfs/workers/presets/datasources/grafana-loki/GrafanaLokiDataSourceProvider.js.map +1 -1
  82. package/dist/integration-engine/ropid-gtfs/workers/presets/helpers/RopidMonitoringService.js +12 -23
  83. package/dist/integration-engine/ropid-gtfs/workers/presets/helpers/RopidMonitoringService.js.map +1 -1
  84. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js +14 -25
  85. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js.map +1 -1
  86. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CollectAndSaveLogsTask.js +26 -37
  87. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CollectAndSaveLogsTask.js.map +1 -1
  88. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js +12 -23
  89. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js.map +1 -1
  90. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/ProcessAndSendLogsTask.js +36 -49
  91. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/ProcessAndSendLogsTask.js.map +1 -1
  92. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/SavePresetsDataTask.js +3 -14
  93. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/SavePresetsDataTask.js.map +1 -1
  94. package/dist/integration-engine/ropid-gtfs/workers/presets/transformations/PresetLogTransformation.js +1 -2
  95. package/dist/integration-engine/ropid-gtfs/workers/presets/transformations/PresetLogTransformation.js.map +1 -1
  96. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckForNewDataTask.js +29 -40
  97. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckForNewDataTask.js.map +1 -1
  98. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +64 -81
  99. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
  100. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/DownloadDatasetsTask.js +60 -79
  101. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/DownloadDatasetsTask.js.map +1 -1
  102. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPrecomputedTablesTask.js +23 -34
  103. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPrecomputedTablesTask.js.map +1 -1
  104. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js +26 -38
  105. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js.map +1 -1
  106. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js +21 -32
  107. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js.map +1 -1
  108. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/TransformAndSaveDataTask.js +43 -55
  109. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/TransformAndSaveDataTask.js.map +1 -1
  110. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/DeparturesDirectionRepository.js +8 -18
  111. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/DeparturesDirectionRepository.js.map +1 -1
  112. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/MetroRailtrackGPSRepository.js +11 -21
  113. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/MetroRailtrackGPSRepository.js.map +1 -1
  114. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js +8 -17
  115. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js.map +1 -1
  116. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/RopidGtfsFactory.js +19 -30
  117. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/RopidGtfsFactory.js.map +1 -1
  118. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/transformations/DeparturesDirectionTransformation.js +8 -1
  119. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/transformations/DeparturesDirectionTransformation.js.map +1 -1
  120. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js +31 -47
  121. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js.map +1 -1
  122. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js +6 -17
  123. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js.map +1 -1
  124. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js +4 -14
  125. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js.map +1 -1
  126. package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.js +6 -17
  127. package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.js.map +1 -1
  128. package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.js +34 -31
  129. package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.js.map +1 -1
  130. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.js +3 -12
  131. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.js.map +1 -1
  132. package/dist/integration-engine/shared/RopidMetadataModel.js +35 -45
  133. package/dist/integration-engine/shared/RopidMetadataModel.js.map +1 -1
  134. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.js +13 -24
  135. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.js.map +1 -1
  136. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/VehicleDescriptor.js +9 -6
  137. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/VehicleDescriptor.js.map +1 -1
  138. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +113 -128
  139. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
  140. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.js +20 -34
  141. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.js.map +1 -1
  142. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/AbstractRunRepository.js +3 -12
  143. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/AbstractRunRepository.js.map +1 -1
  144. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsMessagesRepository.js +3 -12
  145. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsMessagesRepository.js.map +1 -1
  146. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.js +12 -21
  147. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.js.map +1 -1
  148. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +7 -16
  149. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
  150. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/CisLookupManager.js +22 -33
  151. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/CisLookupManager.js.map +1 -1
  152. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/GtfsLookupManager.js +31 -44
  153. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/GtfsLookupManager.js.map +1 -1
  154. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js +14 -25
  155. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js.map +1 -1
  156. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/TripScheduleManager.js +25 -37
  157. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/TripScheduleManager.js.map +1 -1
  158. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js +53 -63
  159. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js.map +1 -1
  160. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessRegionalBusRunMessagesTask.js +57 -72
  161. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessRegionalBusRunMessagesTask.js.map +1 -1
  162. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js +15 -26
  163. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js.map +1 -1
  164. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +10 -21
  165. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
  166. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js +19 -30
  167. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js.map +1 -1
  168. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +10 -21
  169. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
  170. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +5 -14
  171. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
  172. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessageProcessingTransformation.js +4 -14
  173. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessageProcessingTransformation.js.map +1 -1
  174. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js +1 -2
  175. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js.map +1 -1
  176. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/data-access/DescriptorRepository.js +35 -49
  177. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/data-access/DescriptorRepository.js.map +1 -1
  178. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/RefreshDescriptorsTask.js +11 -22
  179. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/RefreshDescriptorsTask.js.map +1 -1
  180. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/transformations/DescriptorTransformation.js +2 -3
  181. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/transformations/DescriptorTransformation.js.map +1 -1
  182. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.js +3 -12
  183. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.js.map +1 -1
  184. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsHistoryRepository.js +3 -12
  185. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsHistoryRepository.js.map +1 -1
  186. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js +19 -29
  187. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js.map +1 -1
  188. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/StopTimesHistoryRepository.js +3 -12
  189. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/StopTimesHistoryRepository.js.map +1 -1
  190. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsHistoryRepository.js +3 -12
  191. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsHistoryRepository.js.map +1 -1
  192. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +58 -55
  193. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
  194. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js +64 -79
  195. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js.map +1 -1
  196. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicStopTimeCacheRepository.js +46 -59
  197. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicStopTimeCacheRepository.js.map +1 -1
  198. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js +39 -6
  199. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js.map +1 -1
  200. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.js +8 -19
  201. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.js.map +1 -1
  202. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/PublicStopTimeRepository.js +2 -13
  203. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/PublicStopTimeRepository.js.map +1 -1
  204. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.js +1 -2
  205. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.js.map +1 -1
  206. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js +10 -16
  207. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js.map +1 -1
  208. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js +68 -40
  209. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js.map +1 -1
  210. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/TripStopsManager.js +5 -14
  211. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/TripStopsManager.js.map +1 -1
  212. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js +1 -2
  213. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js.map +1 -1
  214. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/anchor-points/AnchorPointSegmenter.js +1 -2
  215. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/anchor-points/AnchorPointSegmenter.js.map +1 -1
  216. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/ComputeDelayHelper.js +4 -4
  217. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/ComputeDelayHelper.js.map +1 -1
  218. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/AbstractDelayAtStop.js +1 -2
  219. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/AbstractDelayAtStop.js.map +1 -1
  220. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js +4 -5
  221. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js.map +1 -1
  222. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js +3 -4
  223. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js.map +1 -1
  224. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-data/strategy/HttpGtfsTripDataFixer.js +7 -18
  225. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-data/strategy/HttpGtfsTripDataFixer.js.map +1 -1
  226. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.js +7 -16
  227. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.js.map +1 -1
  228. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.js +40 -57
  229. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.js.map +1 -1
  230. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/GTFSTripMetroRunManager.js +36 -53
  231. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/GTFSTripMetroRunManager.js.map +1 -1
  232. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.js +32 -41
  233. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.js.map +1 -1
  234. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js +61 -33
  235. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js.map +1 -1
  236. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/RegionalBusComputeDelayHelper.js +4 -4
  237. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/RegionalBusComputeDelayHelper.js.map +1 -1
  238. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/strategy/BusDelayAtStop.js +4 -6
  239. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/strategy/BusDelayAtStop.js.map +1 -1
  240. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/gtfs-trip-run/GtfsTripRegionalBusRunManager.js +38 -55
  241. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/gtfs-trip-run/GtfsTripRegionalBusRunManager.js.map +1 -1
  242. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/DataRetentionTask.js +32 -45
  243. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/DataRetentionTask.js.map +1 -1
  244. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/ProcessRegionalBusPositionsTask.js +81 -91
  245. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/ProcessRegionalBusPositionsTask.js.map +1 -1
  246. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateDelayTask.js +43 -55
  247. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateDelayTask.js.map +1 -1
  248. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js +37 -49
  249. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js.map +1 -1
  250. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshGtfsTripDataTask.js +7 -18
  251. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshGtfsTripDataTask.js.map +1 -1
  252. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js +41 -52
  253. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js.map +1 -1
  254. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicTripCacheTask.js +32 -43
  255. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicTripCacheTask.js.map +1 -1
  256. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +95 -115
  257. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js.map +1 -1
  258. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js +150 -162
  259. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js.map +1 -1
  260. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateGtfsTripIdTask.js +82 -94
  261. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateGtfsTripIdTask.js.map +1 -1
  262. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js +24 -35
  263. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
  264. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.js +15 -18
  265. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.js.map +1 -1
  266. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/helpers/UpdateDelayLimiter.js +1 -1
  267. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/helpers/UpdateDelayLimiter.js.map +1 -1
  268. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js +11 -21
  269. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -1
  270. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js +2 -3
  271. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js.map +1 -1
  272. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js +5 -15
  273. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js.map +1 -1
  274. package/dist/output-gateway/pid/controllers/v2/V2InfotextsController.js +4 -13
  275. package/dist/output-gateway/pid/controllers/v2/V2InfotextsController.js.map +1 -1
  276. package/dist/output-gateway/pid/controllers/v3/V3InfotextsController.js +4 -13
  277. package/dist/output-gateway/pid/controllers/v3/V3InfotextsController.js.map +1 -1
  278. package/dist/output-gateway/pid/controllers/v3/V3TransferBoardsController.d.ts +1 -0
  279. package/dist/output-gateway/pid/controllers/v3/V3TransferBoardsController.js +20 -20
  280. package/dist/output-gateway/pid/controllers/v3/V3TransferBoardsController.js.map +1 -1
  281. package/dist/output-gateway/pid/data-access/DeparturesRepository.js +40 -53
  282. package/dist/output-gateway/pid/data-access/DeparturesRepository.js.map +1 -1
  283. package/dist/output-gateway/pid/data-access/JISInfotextRepository.js +62 -75
  284. package/dist/output-gateway/pid/data-access/JISInfotextRepository.js.map +1 -1
  285. package/dist/output-gateway/pid/domain/DepartureInterfaces.d.ts +7 -0
  286. package/dist/output-gateway/pid/domain/DepartureInterfaces.js +3 -0
  287. package/dist/output-gateway/pid/domain/DepartureInterfaces.js.map +1 -0
  288. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +2 -3
  289. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
  290. package/dist/output-gateway/pid/helpers/ParamValidatorManager.js +6 -15
  291. package/dist/output-gateway/pid/helpers/ParamValidatorManager.js.map +1 -1
  292. package/dist/output-gateway/pid/index.d.ts +4 -5
  293. package/dist/output-gateway/pid/index.js +1 -0
  294. package/dist/output-gateway/pid/index.js.map +1 -1
  295. package/dist/output-gateway/pid/ioc/Di.js +4 -0
  296. package/dist/output-gateway/pid/ioc/Di.js.map +1 -1
  297. package/dist/output-gateway/pid/ioc/OgPidToken.d.ts +2 -0
  298. package/dist/output-gateway/pid/ioc/OgPidToken.js +2 -0
  299. package/dist/output-gateway/pid/ioc/OgPidToken.js.map +1 -1
  300. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.d.ts +14 -28
  301. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js +195 -84
  302. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js.map +1 -1
  303. package/dist/output-gateway/pid/models/RopidDeparturesDirectionsModel.js +20 -27
  304. package/dist/output-gateway/pid/models/RopidDeparturesDirectionsModel.js.map +1 -1
  305. package/dist/output-gateway/pid/models/RopidVYMIEventsStopsModel.js +16 -25
  306. package/dist/output-gateway/pid/models/RopidVYMIEventsStopsModel.js.map +1 -1
  307. package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js +28 -18
  308. package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js.map +1 -1
  309. package/dist/output-gateway/pid/models/helpers/SkipHelper.d.ts +19 -0
  310. package/dist/output-gateway/pid/models/helpers/SkipHelper.js +116 -0
  311. package/dist/output-gateway/pid/models/helpers/SkipHelper.js.map +1 -0
  312. package/dist/output-gateway/pid/models/helpers/const.d.ts +4 -0
  313. package/dist/output-gateway/pid/models/helpers/const.js +8 -0
  314. package/dist/output-gateway/pid/models/helpers/const.js.map +1 -0
  315. package/dist/output-gateway/pid/models/helpers/interfaces/IPIDDepartureQueryOptions.d.ts +4 -1
  316. package/dist/output-gateway/pid/models/interfaces/IGetDeparturesOptions.d.ts +21 -0
  317. package/dist/output-gateway/pid/models/interfaces/IGetDeparturesOptions.js +3 -0
  318. package/dist/output-gateway/pid/models/interfaces/IGetDeparturesOptions.js.map +1 -0
  319. package/dist/output-gateway/pid/routers/v3/V3PIDRouter.js +1 -1
  320. package/dist/output-gateway/pid/routers/v3/V3PIDRouter.js.map +1 -1
  321. package/dist/output-gateway/pid/service/facade/InfotextFacade.js +12 -23
  322. package/dist/output-gateway/pid/service/facade/InfotextFacade.js.map +1 -1
  323. package/dist/output-gateway/pid/service/facade/StopFacade.js +27 -38
  324. package/dist/output-gateway/pid/service/facade/StopFacade.js.map +1 -1
  325. package/dist/output-gateway/pid/service/facade/TransferFacade.d.ts +1 -1
  326. package/dist/output-gateway/pid/service/facade/TransferFacade.js +34 -39
  327. package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
  328. package/dist/output-gateway/pid/service/transformations/JISInfotextDepartureTransformation.js +3 -4
  329. package/dist/output-gateway/pid/service/transformations/JISInfotextDepartureTransformation.js.map +1 -1
  330. package/dist/output-gateway/pid/service/transformations/JISInfotextOverviewTransformation.js +8 -12
  331. package/dist/output-gateway/pid/service/transformations/JISInfotextOverviewTransformation.js.map +1 -1
  332. package/dist/output-gateway/pid/service/transformations/JISInfotextTransferTransformation.js +1 -2
  333. package/dist/output-gateway/pid/service/transformations/JISInfotextTransferTransformation.js.map +1 -1
  334. package/dist/output-gateway/pid/service/transformations/TransferDepartureTransformation.js +1 -2
  335. package/dist/output-gateway/pid/service/transformations/TransferDepartureTransformation.js.map +1 -1
  336. package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js +4 -13
  337. package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js.map +1 -1
  338. package/dist/output-gateway/public/controllers/v2/V2PublicGtfsController.js +4 -13
  339. package/dist/output-gateway/public/controllers/v2/V2PublicGtfsController.js.map +1 -1
  340. package/dist/output-gateway/public/controllers/v2/V2PublicVehiclePositionsController.js +9 -18
  341. package/dist/output-gateway/public/controllers/v2/V2PublicVehiclePositionsController.js.map +1 -1
  342. package/dist/output-gateway/public/data-access/VehicleDescriptorCachedRepository.js +13 -26
  343. package/dist/output-gateway/public/data-access/VehicleDescriptorCachedRepository.js.map +1 -1
  344. package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.js +22 -33
  345. package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.js.map +1 -1
  346. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +9 -20
  347. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -1
  348. package/dist/output-gateway/public/data-access/redis/PublicStopTimeRepository.js +23 -34
  349. package/dist/output-gateway/public/data-access/redis/PublicStopTimeRepository.js.map +1 -1
  350. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.d.ts +4 -2
  351. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js +178 -175
  352. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map +1 -1
  353. package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.d.ts +2 -1
  354. package/dist/output-gateway/public/routers/v2/helpers/CustomStopIdGroupValidator.js +2 -2
  355. package/dist/output-gateway/public/routers/v2/helpers/CustomStopIdGroupValidator.js.map +1 -1
  356. package/dist/output-gateway/public/service/VPSubscriber.js +8 -19
  357. package/dist/output-gateway/public/service/VPSubscriber.js.map +1 -1
  358. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +100 -117
  359. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -1
  360. package/dist/output-gateway/public/service/facade/DetailedTripFacade.js +18 -29
  361. package/dist/output-gateway/public/service/facade/DetailedTripFacade.js.map +1 -1
  362. package/dist/output-gateway/public/service/facade/GtfsTripLookupFacade.js +20 -31
  363. package/dist/output-gateway/public/service/facade/GtfsTripLookupFacade.js.map +1 -1
  364. package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.js +15 -26
  365. package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.js.map +1 -1
  366. package/dist/output-gateway/public/service/helpers/gtfs-trip-scope/strategy/StopTimesTripScopeHandler.js +1 -2
  367. package/dist/output-gateway/public/service/helpers/gtfs-trip-scope/strategy/StopTimesTripScopeHandler.js.map +1 -1
  368. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/InfoTripScopeHandler.js +3 -14
  369. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/InfoTripScopeHandler.js.map +1 -1
  370. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js +7 -18
  371. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js.map +1 -1
  372. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js +35 -46
  373. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js.map +1 -1
  374. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/VehicleDescriptorTripScopeHandler.js +16 -22
  375. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/VehicleDescriptorTripScopeHandler.js.map +1 -1
  376. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js +9 -10
  377. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js.map +1 -1
  378. package/dist/output-gateway/public/service/transformations/PublicVehiclePositionsTransformation.js +5 -15
  379. package/dist/output-gateway/public/service/transformations/PublicVehiclePositionsTransformation.js.map +1 -1
  380. package/dist/output-gateway/public/service/transformations/gtfs-trip-scopes/PublicGtfsTripInfoTransformation.js +2 -3
  381. package/dist/output-gateway/public/service/transformations/gtfs-trip-scopes/PublicGtfsTripInfoTransformation.js.map +1 -1
  382. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripInfoTransformation.js +2 -15
  383. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripInfoTransformation.js.map +1 -1
  384. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripStopTimesTransformation.js +1 -13
  385. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripStopTimesTransformation.js.map +1 -1
  386. package/dist/output-gateway/ropid-gtfs/data-access/CisStopGroupRepository.js +14 -25
  387. package/dist/output-gateway/ropid-gtfs/data-access/CisStopGroupRepository.js.map +1 -1
  388. package/dist/output-gateway/ropid-gtfs/data-access/redis/RunTripsRedisRepository.d.ts +10 -0
  389. package/dist/output-gateway/ropid-gtfs/data-access/redis/RunTripsRedisRepository.js +65 -0
  390. package/dist/output-gateway/ropid-gtfs/data-access/redis/RunTripsRedisRepository.js.map +1 -0
  391. package/dist/output-gateway/ropid-gtfs/domain/repository/IRunTripsRedisRepository.d.ts +4 -0
  392. package/dist/output-gateway/ropid-gtfs/domain/repository/IRunTripsRedisRepository.js +3 -0
  393. package/dist/output-gateway/ropid-gtfs/domain/repository/IRunTripsRedisRepository.js.map +1 -0
  394. package/dist/output-gateway/ropid-gtfs/models/GTFSCalendarModel.js +3 -12
  395. package/dist/output-gateway/ropid-gtfs/models/GTFSCalendarModel.js.map +1 -1
  396. package/dist/output-gateway/ropid-gtfs/models/GTFSRoutesModel.js +4 -13
  397. package/dist/output-gateway/ropid-gtfs/models/GTFSRoutesModel.js.map +1 -1
  398. package/dist/output-gateway/ropid-gtfs/models/GTFSShapesModel.js +5 -14
  399. package/dist/output-gateway/ropid-gtfs/models/GTFSShapesModel.js.map +1 -1
  400. package/dist/output-gateway/ropid-gtfs/models/GTFSStopModel.js +90 -102
  401. package/dist/output-gateway/ropid-gtfs/models/GTFSStopModel.js.map +1 -1
  402. package/dist/output-gateway/ropid-gtfs/models/GTFSStopTimesModel.js +3 -12
  403. package/dist/output-gateway/ropid-gtfs/models/GTFSStopTimesModel.js.map +1 -1
  404. package/dist/output-gateway/ropid-gtfs/models/GTFSTripsModel.js +43 -51
  405. package/dist/output-gateway/ropid-gtfs/models/GTFSTripsModel.js.map +1 -1
  406. package/dist/output-gateway/ropid-gtfs/routers/v2/V2GTFSRouter.js +28 -37
  407. package/dist/output-gateway/ropid-gtfs/routers/v2/V2GTFSRouter.js.map +1 -1
  408. package/dist/output-gateway/shared/DepartureCalculator.js +1 -1
  409. package/dist/output-gateway/shared/DepartureCalculator.js.map +1 -1
  410. package/dist/output-gateway/shared/constants/validations.js +1 -1
  411. package/dist/output-gateway/shared/constants/validations.js.map +1 -1
  412. package/dist/output-gateway/vehicle-positions/data-access/helpers/PositionOutputMapper.js +40 -48
  413. package/dist/output-gateway/vehicle-positions/data-access/helpers/PositionOutputMapper.js.map +1 -1
  414. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js +7 -16
  415. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js.map +1 -1
  416. package/dist/output-gateway/vehicle-positions/routers/v2/V2VehiclePositionsRouter.js +10 -19
  417. package/dist/output-gateway/vehicle-positions/routers/v2/V2VehiclePositionsRouter.js.map +1 -1
  418. package/dist/schema-definitions/ropid-gtfs/RopidGTFSRunNumbers.js +5 -2
  419. package/dist/schema-definitions/ropid-gtfs/RopidGTFSRunNumbers.js.map +1 -1
  420. package/dist/schema-definitions/ropid-gtfs/index.js +16 -4
  421. package/dist/schema-definitions/ropid-gtfs/index.js.map +1 -1
  422. package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +1 -0
  423. package/dist/schema-definitions/ropid-gtfs/redis/const.js +2 -1
  424. package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
  425. package/docs/openapi-output.yaml +11 -3
  426. package/package.json +2 -2
@@ -11,15 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
14
  Object.defineProperty(exports, "__esModule", { value: true });
24
15
  exports.DelayComputationRepository = void 0;
25
16
  const const_1 = require("../../../../schema-definitions/vehicle-positions/redis/const");
@@ -33,30 +24,28 @@ let DelayComputationRepository = exports.DelayComputationRepository = class Dela
33
24
  this.redisConnector = redisConnector;
34
25
  this.log = log;
35
26
  }
36
- getDelayComputationCache(gtfsTripId) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- if (!this.redisConnector.isConnected()) {
39
- yield this.redisConnector.connect();
40
- }
41
- const connection = this.redisConnector.getConnection();
42
- let delayComputationCache = null;
43
- try {
44
- delayComputationCache = yield connection.get(`${const_1.GTFS_DELAY_COMPUTATION_NAMESPACE_PREFIX}:${gtfsTripId}`);
45
- }
46
- catch (err) {
47
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get delay computation cache from cache: ${err.message}`, this.constructor.name, err);
48
- }
49
- if (delayComputationCache === null) {
50
- this.log.info(`${this.constructor.name}: Cannot find delay computation cache`);
51
- return null;
52
- }
53
- try {
54
- return JSON.parse(delayComputationCache);
55
- }
56
- catch (err) {
57
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse delay computation cache: ${err.message}`, this.constructor.name, err);
58
- }
59
- });
27
+ async getDelayComputationCache(gtfsTripId) {
28
+ if (!this.redisConnector.isConnected()) {
29
+ await this.redisConnector.connect();
30
+ }
31
+ const connection = this.redisConnector.getConnection();
32
+ let delayComputationCache = null;
33
+ try {
34
+ delayComputationCache = await connection.get(`${const_1.GTFS_DELAY_COMPUTATION_NAMESPACE_PREFIX}:${gtfsTripId}`);
35
+ }
36
+ catch (err) {
37
+ throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get delay computation cache from cache: ${err.message}`, this.constructor.name, err);
38
+ }
39
+ if (delayComputationCache === null) {
40
+ this.log.info(`${this.constructor.name}: Cannot find delay computation cache`);
41
+ return null;
42
+ }
43
+ try {
44
+ return JSON.parse(delayComputationCache);
45
+ }
46
+ catch (err) {
47
+ throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse delay computation cache: ${err.message}`, this.constructor.name, err);
48
+ }
60
49
  }
61
50
  };
62
51
  exports.DelayComputationRepository = DelayComputationRepository = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"DelayComputationRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/DelayComputationRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,wFAA6F;AAC7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,0BAA0B,wCAAhC,MAAM,0BAA0B;IACnC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAES,wBAAwB,CAAC,UAAkB;;YACpD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACvC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,qBAAqB,GAAkB,IAAI,CAAC;YAEhD,IAAI;gBACA,qBAAqB,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+CAAuC,IAAI,UAAU,EAAE,CAAC,CAAC;aAC5G;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,oDAAoD,GAAG,CAAC,OAAO,EAAE,EACzF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI,qBAAqB,KAAK,IAAI,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,uCAAuC,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC;aACf;YAED,IAAI;gBACA,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;aAC5C;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,2CAA2C,GAAG,CAAC,OAAO,EAAE,EAChF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;QACL,CAAC;KAAA;CACJ,CAAA;qCAvCY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,0BAA0B,CAuCtC"}
1
+ {"version":3,"file":"DelayComputationRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/DelayComputationRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,wFAA6F;AAC7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,0BAA0B,wCAAhC,MAAM,0BAA0B;IACnC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,wBAAwB,CAAC,UAAkB;QACpD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,qBAAqB,GAAkB,IAAI,CAAC;QAEhD,IAAI;YACA,qBAAqB,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+CAAuC,IAAI,UAAU,EAAE,CAAC,CAAC;SAC5G;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,oDAAoD,GAAG,CAAC,OAAO,EAAE,EACzF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;QAED,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,uCAAuC,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;SACf;QAED,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC5C;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,2CAA2C,GAAG,CAAC,OAAO,EAAE,EAChF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;IACL,CAAC;CACJ,CAAA;qCAvCY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,0BAA0B,CAuCtC"}
@@ -11,15 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
14
  Object.defineProperty(exports, "__esModule", { value: true });
24
15
  exports.PublicGtfsDepartureRepository = void 0;
25
16
  const const_1 = require("../../../../schema-definitions/ropid-gtfs/redis/const");
@@ -32,11 +23,11 @@ let PublicGtfsDepartureRepository = exports.PublicGtfsDepartureRepository = clas
32
23
  constructor(redisConnector, log) {
33
24
  this.redisConnector = redisConnector;
34
25
  this.log = log;
35
- this.getAndParseDepartureCache = (stopId, minutesAfter) => __awaiter(this, void 0, void 0, function* () {
26
+ this.getAndParseDepartureCache = async (stopId, minutesAfter) => {
36
27
  const connection = this.redisConnector.getConnection();
37
28
  let departureCache;
38
29
  try {
39
- departureCache = yield connection.zrangebyscore(`${const_1.PUBLIC_DEPARTURE_NAMESPACE_PREFIX}:${stopId}`, "-inf", Math.round(new Date().getTime() / 1000) + minutesAfter * 60);
30
+ departureCache = await connection.zrangebyscore(`${const_1.PUBLIC_DEPARTURE_NAMESPACE_PREFIX}:${stopId}`, "-inf", Math.round(new Date().getTime() / 1000) + minutesAfter * 60);
40
31
  }
41
32
  catch (err) {
42
33
  throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get public departure cache from cache: ${err.message}`, this.constructor.name, err);
@@ -51,16 +42,14 @@ let PublicGtfsDepartureRepository = exports.PublicGtfsDepartureRepository = clas
51
42
  catch (err) {
52
43
  throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse public departure cache: ${err.message}`, this.constructor.name, err);
53
44
  }
54
- });
45
+ };
55
46
  }
56
- getPublicGtfsDepartureCache(stopIds, minutesAfter) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- if (!this.redisConnector.isConnected()) {
59
- yield this.redisConnector.connect();
60
- }
61
- const allDepartures = yield Promise.all(stopIds.map((stopId) => this.getAndParseDepartureCache(stopId, minutesAfter)));
62
- return allDepartures.flat();
63
- });
47
+ async getPublicGtfsDepartureCache(stopIds, minutesAfter) {
48
+ if (!this.redisConnector.isConnected()) {
49
+ await this.redisConnector.connect();
50
+ }
51
+ const allDepartures = await Promise.all(stopIds.map((stopId) => this.getAndParseDepartureCache(stopId, minutesAfter)));
52
+ return allDepartures.flat();
64
53
  }
65
54
  };
66
55
  exports.PublicGtfsDepartureRepository = PublicGtfsDepartureRepository = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"PublicGtfsDepartureRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,iFAAgF;AAEhF,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,6BAA6B,2CAAnC,MAAM,6BAA6B;IACtC,YAC2C,cAAwC,EACrD,GAAoB;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;QAe1C,8BAAyB,GAAG,CAAO,MAAc,EAAE,YAAoB,EAA2C,EAAE;YACxH,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,cAAwB,CAAC;YAE7B,IAAI;gBACA,cAAc,GAAG,MAAM,UAAU,CAAC,aAAa,CAC3C,GAAG,yCAAiC,IAAI,MAAM,EAAE,EAChD,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,GAAG,EAAE,CAC9D,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iDAAiD,MAAM,WAAW,CAAC,CAAC;gBAC1G,OAAO,EAAE,CAAC;aACb;YAED,IAAI;gBACA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiC,CAAC,CAAC;aAC3F;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0CAA0C,GAAG,CAAC,OAAO,EAAE,EAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;QACL,CAAC,CAAA,CAAC;IA9CC,CAAC;IAES,2BAA2B,CAAC,OAAiB,EAAE,YAAoB;;YAC5E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACvC;YAED,MAAM,aAAa,GAAqC,MAAM,OAAO,CAAC,GAAG,CACrE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAChF,CAAC;YAEF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;KAAA;CAmCJ,CAAA;wCAnDY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,6BAA6B,CAmDzC"}
1
+ {"version":3,"file":"PublicGtfsDepartureRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iFAAgF;AAEhF,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,6BAA6B,2CAAnC,MAAM,6BAA6B;IACtC,YAC2C,cAAwC,EACrD,GAAoB;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;QAe1C,8BAAyB,GAAG,KAAK,EAAE,MAAc,EAAE,YAAoB,EAA2C,EAAE;YACxH,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,cAAwB,CAAC;YAE7B,IAAI;gBACA,cAAc,GAAG,MAAM,UAAU,CAAC,aAAa,CAC3C,GAAG,yCAAiC,IAAI,MAAM,EAAE,EAChD,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,GAAG,EAAE,CAC9D,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iDAAiD,MAAM,WAAW,CAAC,CAAC;gBAC1G,OAAO,EAAE,CAAC;aACb;YAED,IAAI;gBACA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiC,CAAC,CAAC;aAC3F;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0CAA0C,GAAG,CAAC,OAAO,EAAE,EAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;QACL,CAAC,CAAC;IA9CC,CAAC;IAEG,KAAK,CAAC,2BAA2B,CAAC,OAAiB,EAAE,YAAoB;QAC5E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,aAAa,GAAqC,MAAM,OAAO,CAAC,GAAG,CACrE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAChF,CAAC;QAEF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CAmCJ,CAAA;wCAnDY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,6BAA6B,CAmDzC"}
@@ -11,15 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
14
  Object.defineProperty(exports, "__esModule", { value: true });
24
15
  exports.PublicStopTimeRepository = void 0;
25
16
  const const_1 = require("../../../../schema-definitions/vehicle-positions/redis/const");
@@ -33,31 +24,29 @@ let PublicStopTimeRepository = exports.PublicStopTimeRepository = class PublicSt
33
24
  this.redisConnector = redisConnector;
34
25
  this.log = log;
35
26
  }
36
- getPublicStopTimeCache(vehicleId, gtfsTripId) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- if (!this.redisConnector.isConnected()) {
39
- yield this.redisConnector.connect();
40
- }
41
- const connection = this.redisConnector.getConnection();
42
- let stopTimeCache = null;
43
- try {
44
- const key = `${vehicleId}-${gtfsTripId}`;
45
- stopTimeCache = yield connection.get(`${const_1.PUBLIC_STOP_TIME_CACHE_NAMESPACE_PREFIX}:${key}`);
46
- }
47
- catch (err) {
48
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get public stop time cache from cache: ${err.message}`, this.constructor.name, err);
49
- }
50
- if (stopTimeCache === null) {
51
- this.log.info(`${this.constructor.name}: Cannot find public stop time cache`);
52
- return [];
53
- }
54
- try {
55
- return JSON.parse(stopTimeCache);
56
- }
57
- catch (err) {
58
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse public stop time cache: ${err.message}`, this.constructor.name, err);
59
- }
60
- });
27
+ async getPublicStopTimeCache(vehicleId, gtfsTripId) {
28
+ if (!this.redisConnector.isConnected()) {
29
+ await this.redisConnector.connect();
30
+ }
31
+ const connection = this.redisConnector.getConnection();
32
+ let stopTimeCache = null;
33
+ try {
34
+ const key = `${vehicleId}-${gtfsTripId}`;
35
+ stopTimeCache = await connection.get(`${const_1.PUBLIC_STOP_TIME_CACHE_NAMESPACE_PREFIX}:${key}`);
36
+ }
37
+ catch (err) {
38
+ throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get public stop time cache from cache: ${err.message}`, this.constructor.name, err);
39
+ }
40
+ if (stopTimeCache === null) {
41
+ this.log.info(`${this.constructor.name}: Cannot find public stop time cache`);
42
+ return [];
43
+ }
44
+ try {
45
+ return JSON.parse(stopTimeCache);
46
+ }
47
+ catch (err) {
48
+ throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse public stop time cache: ${err.message}`, this.constructor.name, err);
49
+ }
61
50
  }
62
51
  };
63
52
  exports.PublicStopTimeRepository = PublicStopTimeRepository = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"PublicStopTimeRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicStopTimeRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,wFAA6F;AAE7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAES,sBAAsB,CAAC,SAAiB,EAAE,UAAkB;;YACrE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACvC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,aAAa,GAAkB,IAAI,CAAC;YAExC,IAAI;gBACA,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;gBACzC,aAAa,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+CAAuC,IAAI,GAAG,EAAE,CAAC,CAAC;aAC7F;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI,aAAa,KAAK,IAAI,EAAE;gBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,sCAAsC,CAAC,CAAC;gBAC9E,OAAO,EAAE,CAAC;aACb;YAED,IAAI;gBACA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0CAA0C,GAAG,CAAC,OAAO,EAAE,EAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;QACL,CAAC;KAAA;CACJ,CAAA;mCAxCY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,wBAAwB,CAwCpC"}
1
+ {"version":3,"file":"PublicStopTimeRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicStopTimeRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wFAA6F;AAE7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,UAAkB;QACrE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,aAAa,GAAkB,IAAI,CAAC;QAExC,IAAI;YACA,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;YACzC,aAAa,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+CAAuC,IAAI,GAAG,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;QAED,IAAI,aAAa,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;SACb;QAED,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACpC;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0CAA0C,GAAG,CAAC,OAAO,EAAE,EAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;IACL,CAAC;CACJ,CAAA;mCAxCY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,wBAAwB,CAwCpC"}
@@ -8,10 +8,12 @@ export declare class PublicVehiclePositionsRepository implements IVehiclePositio
8
8
  private log;
9
9
  private setName;
10
10
  constructor(redisConnector: IoRedisConnector, log: ILogger);
11
+ setCurrentSetName(name: string): void;
11
12
  getAllVehicleIds(boundingBox: IBoundingBoxWithCenter): Promise<string[]>;
12
13
  getAllVehiclePositions(vehicleIds: string[], tripIds?: string[]): Promise<IPublicApiCacheDto[]>;
13
14
  getAllVehiclePositionsForMultipleTrips(tripIds: string[]): Promise<Map<string, IPublicApiCacheDto[]>>;
14
- private getCanceledTrips;
15
+ getTripsWithUntrackedVehicles(tripIds: string[]): Promise<Set<string>>;
15
16
  getDetailedVehiclePosition(vehicleId: string, tripId?: string): Promise<IPublicApiCacheDto | null>;
16
- setCurrentSetName(name: string): void;
17
+ private getVehicleIdsForMultiple;
18
+ private getCanceledTrips;
17
19
  }
@@ -11,15 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
14
  Object.defineProperty(exports, "__esModule", { value: true });
24
15
  exports.PublicVehiclePositionsRepository = void 0;
25
16
  const IoRedisConnector_1 = require("@golemio/core/dist/helpers/data-access/redis/IoRedisConnector");
@@ -33,191 +24,203 @@ let PublicVehiclePositionsRepository = exports.PublicVehiclePositionsRepository
33
24
  this.log = log;
34
25
  this.setName = undefined; // loaded via pub sub
35
26
  }
36
- getAllVehicleIds(boundingBox) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- if (!this.setName) {
39
- this.log.debug("Empty setName for public vehicle positions api.");
40
- return [];
27
+ setCurrentSetName(name) {
28
+ this.setName = name;
29
+ }
30
+ async getAllVehicleIds(boundingBox) {
31
+ if (!this.setName) {
32
+ this.log.debug("Empty setName for public vehicle positions api.");
33
+ return [];
34
+ }
35
+ if (!this.redisConnector.isConnected()) {
36
+ await this.redisConnector.connect();
37
+ }
38
+ const connection = this.redisConnector.getConnection();
39
+ let vehicleIds = [];
40
+ try {
41
+ vehicleIds = (await connection.geosearch(this.setName, "FROMLONLAT", boundingBox.centerPoint.longitude, boundingBox.centerPoint.latitude, "BYBOX", boundingBox.width, boundingBox.height, "m", "ASC"));
42
+ }
43
+ catch (error) {
44
+ throw new golemio_errors_1.GeneralError("Cannot get vehicle ids from cache", this.constructor.name, error);
45
+ }
46
+ return vehicleIds;
47
+ }
48
+ async getAllVehiclePositions(vehicleIds, tripIds) {
49
+ if (!this.setName) {
50
+ this.log.debug("Empty setName for public vehicle positions api.");
51
+ return [];
52
+ }
53
+ const connection = this.redisConnector.getConnection();
54
+ let vehiclePositions = [];
55
+ try {
56
+ const keys = [];
57
+ if (tripIds) {
58
+ for (const tripId of tripIds) {
59
+ keys.push(...vehicleIds.map((vehicleId) => `${this.setName}:future-vehicle-${vehicleId}-${tripId}`));
60
+ }
41
61
  }
42
- if (!this.redisConnector.isConnected()) {
43
- yield this.redisConnector.connect();
62
+ else {
63
+ keys.push(...vehicleIds.map((vehicleId) => `${this.setName}:vehicle-${vehicleId}`));
64
+ }
65
+ vehiclePositions = await connection.mget(keys);
66
+ }
67
+ catch (error) {
68
+ throw new golemio_errors_1.GeneralError("Cannot get vehicle positions from cache", this.constructor.name, error);
69
+ }
70
+ const parsedVehiclePositions = [];
71
+ for (const vehiclePosition of vehiclePositions) {
72
+ if (vehiclePosition === null) {
73
+ continue;
44
74
  }
45
- const connection = this.redisConnector.getConnection();
46
- let vehicleIds = [];
47
75
  try {
48
- vehicleIds = (yield connection.geosearch(this.setName, "FROMLONLAT", boundingBox.centerPoint.longitude, boundingBox.centerPoint.latitude, "BYBOX", boundingBox.width, boundingBox.height, "m", "ASC"));
76
+ parsedVehiclePositions.push(JSON.parse(vehiclePosition));
49
77
  }
50
- catch (err) {
51
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get vehicle ids from cache: ${err.message}`, this.constructor.name, err);
78
+ catch (error) {
79
+ throw new golemio_errors_1.GeneralError("Cannot parse vehicle position", this.constructor.name, error);
52
80
  }
53
- return vehicleIds;
54
- });
81
+ }
82
+ return parsedVehiclePositions;
55
83
  }
56
- getAllVehiclePositions(vehicleIds, tripIds) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- if (!this.setName) {
59
- this.log.debug("Empty setName for public vehicle positions api.");
60
- return [];
61
- }
62
- const connection = this.redisConnector.getConnection();
63
- let vehiclePositions = [];
64
- try {
65
- const keys = [];
66
- if (tripIds) {
67
- for (const tripId of tripIds) {
68
- keys.push(...vehicleIds.map((vehicleId) => `${this.setName}:future-vehicle-${vehicleId}-${tripId}`));
69
- }
70
- }
71
- else {
72
- keys.push(...vehicleIds.map((vehicleId) => `${this.setName}:vehicle-${vehicleId}`));
84
+ async getAllVehiclePositionsForMultipleTrips(tripIds) {
85
+ const positionsByTrip = new Map();
86
+ if (!this.setName || tripIds.length === 0) {
87
+ this.log.debug("Empty setName for public vehicle positions api or empty trip ids.");
88
+ return positionsByTrip;
89
+ }
90
+ if (!this.redisConnector.isConnected()) {
91
+ await this.redisConnector.connect();
92
+ }
93
+ const [vehicleIdsCurrent, vehicleIdsFuture] = await Promise.all([
94
+ this.getVehicleIdsForMultiple(tripIds, "trip"),
95
+ this.getVehicleIdsForMultiple(tripIds, "future-trip"),
96
+ ]);
97
+ const vehicleIds = Array.from(new Set([...vehicleIdsCurrent, ...vehicleIdsFuture]));
98
+ if (vehicleIds.length > 0) {
99
+ const allPositions = await this.getAllVehiclePositions(vehicleIds);
100
+ for (const position of allPositions) {
101
+ if (!positionsByTrip.has(position.gtfs_trip_id)) {
102
+ positionsByTrip.set(position.gtfs_trip_id, []);
73
103
  }
74
- vehiclePositions = yield connection.mget(keys);
104
+ positionsByTrip.get(position.gtfs_trip_id).push(position);
75
105
  }
76
- catch (err) {
77
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get vehicle positions from cache: ${err.message}`, this.constructor.name, err);
78
- }
79
- const parsedVehiclePositions = [];
80
- for (const vehiclePosition of vehiclePositions) {
81
- if (vehiclePosition === null) {
82
- continue;
83
- }
84
- try {
85
- parsedVehiclePositions.push(JSON.parse(vehiclePosition));
106
+ const futurePositions = await this.getAllVehiclePositions(vehicleIds, tripIds);
107
+ for (const position of futurePositions) {
108
+ if (!positionsByTrip.has(position.gtfs_trip_id)) {
109
+ positionsByTrip.set(position.gtfs_trip_id, []);
86
110
  }
87
- catch (err) {
88
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse vehicle position: ${err.message}`, this.constructor.name, err);
89
- }
90
- }
91
- return parsedVehiclePositions;
92
- });
111
+ positionsByTrip.get(position.gtfs_trip_id).push(position);
112
+ }
113
+ }
114
+ const canceledTrips = await this.getCanceledTrips(tripIds);
115
+ for (const canceledTrip of canceledTrips) {
116
+ positionsByTrip.set(canceledTrip.gtfs_trip_id, [canceledTrip]);
117
+ }
118
+ return positionsByTrip;
93
119
  }
94
- getAllVehiclePositionsForMultipleTrips(tripIds) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- const positionsByTrip = new Map();
97
- if (!this.setName || tripIds.length === 0) {
98
- this.log.debug("Empty setName for public vehicle positions api or empty trip ids.");
99
- return positionsByTrip;
100
- }
101
- if (!this.redisConnector.isConnected()) {
102
- yield this.redisConnector.connect();
103
- }
104
- const vehicleIdsByTrip = new Map();
105
- const vehicleIdsByFutureTrip = new Map();
106
- const connection = this.redisConnector.getConnection();
107
- const pipeline = connection.pipeline();
108
- const futurePipeline = connection.pipeline();
109
- for (const tripId of tripIds) {
110
- pipeline.lrange(`${this.setName}:trip-${tripId}`, 0, -1);
111
- futurePipeline.lrange(`${this.setName}:future-trip-${tripId}`, 0, -1);
112
- }
113
- try {
114
- const [trips, futureTrips] = yield Promise.all([pipeline.exec(), futurePipeline.exec()]);
115
- for (const [err, vehicleIds] of trips) {
116
- if (err) {
117
- throw new golemio_errors_1.GeneralError("Cannot get vehicle ids for trip from cache", this.constructor.name, err);
118
- }
119
- vehicleIdsByTrip.set(tripIds[vehicleIdsByTrip.size], vehicleIds);
120
- }
121
- for (const [err, vehicleIds] of futureTrips) {
122
- if (err) {
123
- throw new golemio_errors_1.GeneralError("Cannot get vehicle ids for future-trip from cache", this.constructor.name, err);
124
- }
125
- vehicleIdsByFutureTrip.set(tripIds[vehicleIdsByFutureTrip.size], vehicleIds);
126
- }
127
- }
128
- catch (err) {
129
- if (err instanceof golemio_errors_1.GeneralError) {
130
- throw err;
120
+ async getTripsWithUntrackedVehicles(tripIds) {
121
+ const untrackedTrips = new Set();
122
+ if (!this.setName || tripIds.length === 0) {
123
+ this.log.debug("Empty setName for public vehicle positions api or empty trip ids.");
124
+ return untrackedTrips;
125
+ }
126
+ if (!this.redisConnector.isConnected()) {
127
+ await this.redisConnector.connect();
128
+ }
129
+ const vehicleIds = await this.getVehicleIdsForMultiple(tripIds, "trip");
130
+ try {
131
+ // TODO optimization point here - use JSON.GET once it's available in the redis/valkey server
132
+ const allPositions = await this.getAllVehiclePositions(vehicleIds);
133
+ for (let i = 0; i < allPositions.length; i++) {
134
+ if (allPositions[i].delay === null) {
135
+ untrackedTrips.add(allPositions[i].gtfs_trip_id);
131
136
  }
132
- throw new golemio_errors_1.GeneralError("Cannot get vehicle ids for trip from cache", this.constructor.name, err);
133
137
  }
134
- const positionValues = Array.from(new Set([...vehicleIdsByTrip.values(), ...vehicleIdsByFutureTrip.values()].flat()));
135
- if (positionValues.length > 0) {
136
- const allPositions = yield this.getAllVehiclePositions(positionValues);
137
- for (const position of allPositions) {
138
- if (!positionsByTrip.has(position.gtfs_trip_id)) {
139
- positionsByTrip.set(position.gtfs_trip_id, []);
140
- }
141
- positionsByTrip.get(position.gtfs_trip_id).push(position);
142
- }
143
- const futurePositions = yield this.getAllVehiclePositions(positionValues, tripIds);
144
- for (const position of futurePositions) {
145
- if (!positionsByTrip.has(position.gtfs_trip_id)) {
146
- positionsByTrip.set(position.gtfs_trip_id, []);
147
- }
148
- positionsByTrip.get(position.gtfs_trip_id).push(position);
138
+ }
139
+ catch (error) {
140
+ throw new golemio_errors_1.GeneralError("Cannot get vehicle positions from cache", this.constructor.name, error);
141
+ }
142
+ return untrackedTrips;
143
+ }
144
+ // Current trips are saved in the cache with key made from vehicleId only. For future trips tripId has to be also provided.
145
+ async getDetailedVehiclePosition(vehicleId, tripId) {
146
+ if (!this.setName) {
147
+ this.log.debug("Empty setName for public vehicle positions api.");
148
+ return null;
149
+ }
150
+ if (!this.redisConnector.isConnected()) {
151
+ await this.redisConnector.connect();
152
+ }
153
+ const connection = this.redisConnector.getConnection();
154
+ let vehiclePosition = null;
155
+ try {
156
+ const key = tripId ? `${this.setName}:future-trip-${vehicleId}-${tripId}` : `${this.setName}:vehicle-${vehicleId}`;
157
+ vehiclePosition = await connection.get(key);
158
+ }
159
+ catch (error) {
160
+ this.log.error(error, "Cannot get vehicle position from cache");
161
+ throw new golemio_errors_1.GeneralError("Cannot get vehicle position from cache", this.constructor.name, error);
162
+ }
163
+ if (vehiclePosition === null) {
164
+ this.log.info(`${this.constructor.name}: Cannot find vehicle_id ${vehicleId}`);
165
+ return null;
166
+ }
167
+ try {
168
+ return JSON.parse(vehiclePosition);
169
+ }
170
+ catch (error) {
171
+ this.log.error(error, `Cannot parse ${vehicleId}`);
172
+ throw new golemio_errors_1.GeneralError(`Cannot parse ${vehicleId}`, this.constructor.name, error);
173
+ }
174
+ }
175
+ async getVehicleIdsForMultiple(tripIds, keyPrefix) {
176
+ const vehicleIdsByTrip = new Map();
177
+ const connection = this.redisConnector.getConnection();
178
+ const pipeline = connection.pipeline();
179
+ for (const tripId of tripIds) {
180
+ pipeline.lrange(`${this.setName}:${keyPrefix}-${tripId}`, 0, -1);
181
+ }
182
+ try {
183
+ const trips = await pipeline.exec();
184
+ for (const [error, vehicleIds] of trips) {
185
+ if (error) {
186
+ throw new golemio_errors_1.GeneralError(`Cannot get vehicle ids for ${keyPrefix} from cache`, this.constructor.name, error);
149
187
  }
188
+ vehicleIdsByTrip.set(tripIds[vehicleIdsByTrip.size], vehicleIds);
150
189
  }
151
- const canceledTrips = yield this.getCanceledTrips(tripIds);
152
- for (const canceledTrip of canceledTrips) {
153
- positionsByTrip.set(canceledTrip.gtfs_trip_id, [canceledTrip]);
190
+ }
191
+ catch (error) {
192
+ if (error instanceof golemio_errors_1.GeneralError) {
193
+ throw error;
154
194
  }
155
- return positionsByTrip;
156
- });
195
+ throw new golemio_errors_1.GeneralError(`Cannot get vehicle ids for ${keyPrefix} from cache`, this.constructor.name, error);
196
+ }
197
+ return Array.from(vehicleIdsByTrip.values()).flat();
157
198
  }
158
- getCanceledTrips(tripIds) {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- const connection = this.redisConnector.getConnection();
161
- const parsedCanceledTrips = [];
162
- if (tripIds.length === 0) {
163
- return [];
164
- }
165
- const keys = [];
166
- for (const tripId of tripIds) {
167
- keys.push(`${this.setName}:canceled-trips-${tripId}`);
168
- }
169
- const canceledTrips = yield connection.mget(keys);
170
- for (const canceledTrip of canceledTrips) {
171
- if (canceledTrip === null) {
172
- continue;
199
+ async getCanceledTrips(tripIds) {
200
+ const connection = this.redisConnector.getConnection();
201
+ const parsedCanceledTrips = [];
202
+ if (tripIds.length === 0) {
203
+ return [];
204
+ }
205
+ const keys = [];
206
+ for (const tripId of tripIds) {
207
+ keys.push(`${this.setName}:canceled-trips-${tripId}`);
208
+ }
209
+ const canceledTrips = await connection.mget(keys);
210
+ for (const canceledTrip of canceledTrips) {
211
+ if (canceledTrip === null) {
212
+ continue;
213
+ }
214
+ else {
215
+ try {
216
+ parsedCanceledTrips.push(JSON.parse(canceledTrip));
173
217
  }
174
- else {
175
- try {
176
- parsedCanceledTrips.push(JSON.parse(canceledTrip));
177
- }
178
- catch (err) {
179
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse canceled trip: ${err.message}`, this.constructor.name, err);
180
- }
218
+ catch (error) {
219
+ throw new golemio_errors_1.GeneralError("Cannot parse canceled trip", this.constructor.name, error);
181
220
  }
182
221
  }
183
- return parsedCanceledTrips;
184
- });
185
- }
186
- // Current trips are saved in the cache with key made from vehicleId only. For future trips tripId has to be also provided.
187
- getDetailedVehiclePosition(vehicleId, tripId) {
188
- return __awaiter(this, void 0, void 0, function* () {
189
- if (!this.setName) {
190
- this.log.debug("Empty setName for public vehicle positions api.");
191
- return null;
192
- }
193
- if (!this.redisConnector.isConnected()) {
194
- yield this.redisConnector.connect();
195
- }
196
- const connection = this.redisConnector.getConnection();
197
- let vehiclePosition = null;
198
- try {
199
- const key = tripId ? `${this.setName}:future-trip-${vehicleId}-${tripId}` : `${this.setName}:vehicle-${vehicleId}`;
200
- vehiclePosition = yield connection.get(key);
201
- }
202
- catch (err) {
203
- this.log.error(`${this.constructor.name}: Cannot get vehicle position from cache: ${err.message}`);
204
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get vehicle position from cache: ${err.message}`, this.constructor.name, err);
205
- }
206
- if (vehiclePosition === null) {
207
- this.log.info(`${this.constructor.name}: Cannot find vehicle_id ${vehicleId}`);
208
- return null;
209
- }
210
- try {
211
- return JSON.parse(vehiclePosition);
212
- }
213
- catch (err) {
214
- this.log.error(`${this.constructor.name}: Cannot parse ${vehicleId}: ${err.message}`);
215
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse ${vehicleId}: ${err.message}`, this.constructor.name, err);
216
- }
217
- });
218
- }
219
- setCurrentSetName(name) {
220
- this.setName = name;
222
+ }
223
+ return parsedCanceledTrips;
221
224
  }
222
225
  };
223
226
  exports.PublicVehiclePositionsRepository = PublicVehiclePositionsRepository = __decorate([