@golemio/pid 5.7.3-dev.2387345183 → 5.7.3-rc.2387358195

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 (108) hide show
  1. package/dist/const.d.ts +1 -0
  2. package/dist/const.js +2 -1
  3. package/dist/const.js.map +1 -1
  4. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.d.ts +2 -3
  5. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js +2 -4
  6. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js.map +1 -1
  7. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +0 -4
  8. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  9. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +0 -2
  10. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +0 -2
  11. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  12. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.d.ts +1 -6
  13. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js +10 -39
  14. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js.map +1 -1
  15. package/dist/integration-engine/vehicle-positions/ioc/Di.js +0 -2
  16. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  17. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +0 -1
  18. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +0 -1
  19. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  20. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +5 -11
  21. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +9 -36
  22. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
  23. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts +1 -4
  24. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +9 -26
  25. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
  26. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +3 -7
  27. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +8 -26
  28. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
  29. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
  30. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +2 -3
  31. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
  32. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +3 -4
  33. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
  34. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.d.ts +2 -1
  35. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +10 -3
  36. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
  37. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.d.ts +1 -2
  38. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js +3 -5
  39. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js.map +1 -1
  40. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.d.ts +0 -11
  41. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.d.ts +0 -3
  42. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js +0 -11
  43. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js.map +1 -1
  44. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js +3 -4
  45. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
  46. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.d.ts +3 -10
  47. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js +7 -30
  48. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js.map +1 -1
  49. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.d.ts +3 -7
  50. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js +7 -30
  51. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js.map +1 -1
  52. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.d.ts +3 -10
  53. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js +7 -30
  54. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js.map +1 -1
  55. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.d.ts +3 -10
  56. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js +7 -30
  57. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js.map +1 -1
  58. package/dist/output-gateway/vehicle-positions/data-access/index.js +18 -9
  59. package/dist/output-gateway/vehicle-positions/data-access/index.js.map +1 -1
  60. package/dist/output-gateway/vehicle-positions/data-access/interfaces/ITripWithPositionRepository.d.ts +2 -3
  61. package/dist/output-gateway/vehicle-positions/data-access/interfaces/IVPRepositoryInstances.d.ts +6 -6
  62. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.d.ts +3 -7
  63. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js +7 -30
  64. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js.map +1 -1
  65. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.d.ts +7 -17
  66. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js +42 -112
  67. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js.map +1 -1
  68. package/dist/schema-definitions/datasources/static-data/index.d.ts +0 -1
  69. package/dist/schema-definitions/datasources/static-data/index.js +0 -1
  70. package/dist/schema-definitions/datasources/static-data/index.js.map +1 -1
  71. package/dist/schema-definitions/datasources/static-data/interfaces/index.d.ts +0 -1
  72. package/dist/schema-definitions/datasources/static-data/interfaces/index.js +0 -1
  73. package/dist/schema-definitions/datasources/static-data/interfaces/index.js.map +1 -1
  74. package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +0 -2
  75. package/dist/schema-definitions/ropid-gtfs/redis/const.js +1 -3
  76. package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
  77. package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts +0 -8
  78. package/docs/asyncapi.yaml +2 -13
  79. package/docs/cache/types/redis.md +2 -30
  80. package/docs/implementation_documentation.md +4 -101
  81. package/docs/jis/index.md +0 -17
  82. package/docs/processing/input_realtime_data/http_mpvnet.md +0 -21
  83. package/docs/processing/state_position_tracking/http_mpvnet.md +0 -1
  84. package/docs/processing/state_position_tracking/tcp_dpp_common.md +1 -2
  85. package/package.json +1 -1
  86. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +0 -14
  87. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js +0 -47
  88. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js.map +0 -1
  89. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.d.ts +0 -9
  90. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js +0 -47
  91. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js.map +0 -1
  92. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +0 -10
  93. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js +0 -45
  94. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js.map +0 -1
  95. package/dist/output-gateway/vehicle-positions/ioc/Di.d.ts +0 -3
  96. package/dist/output-gateway/vehicle-positions/ioc/Di.js +0 -23
  97. package/dist/output-gateway/vehicle-positions/ioc/Di.js.map +0 -1
  98. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.d.ts +0 -9
  99. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js +0 -15
  100. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js.map +0 -1
  101. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.d.ts +0 -3
  102. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js +0 -40
  103. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js.map +0 -1
  104. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.d.ts +0 -35
  105. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js +0 -18
  106. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js.map +0 -1
  107. package/docs/examples/not_public_vehicles.json +0 -9
  108. package/docs/processing/transferboards_filtering.md +0 -312
@@ -264,14 +264,12 @@ _:warning: Původním záměrem bylo využití OIS číselníku během zpracová
264
264
  - baseUrl: module.pid.staticData.baseUrl
265
265
  - departure directions url: module.pid.staticData.departuresDirection.path
266
266
  - metro rail track url: module.pid.staticData.metroRailTracks.path
267
- - not public vehicles url: module.pid.staticData.notPublicVehicles.path
268
267
  - formát dat
269
268
  - protokol: http
270
- - datový typ: csv (DeparturesDirection, MetroRailTrack), json (NotPublicVehicles)
269
+ - datový typ: csv
271
270
  - validační schéma:
272
271
  - [MetroRailTrack](../src/schema-definitions/datasources/static-data/MetroRailTrackJsonSchema.ts)
273
272
  - [DeparturesDirection](../src/schema-definitions/datasources/static-data/DeparturesDirectionsJsonSchema.ts)
274
- - [NotPublicVehicles](../src/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.ts) – interface `INotPublicVehicles`
275
273
  - příklad vstupnich dat: viz zdroj data
276
274
  - frekvence stahování
277
275
  - Po nacteni jizdnich radu (fronta: vehicle-positions.ropidgtfs.checkForNewData)
@@ -514,9 +512,6 @@ Všechny tabulky se nachází ve schématu `pid`
514
512
  - [RopidGTFSRunNumbersTransformation](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-gtfs/transformations/RopidGTFSRunNumbersTransformation.ts)
515
513
  - [RopidGtfsRouteSubAgencyTransformation](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-gtfs/transformations/RopidGtfsRouteSubAgencyTransformation.ts)
516
514
  - on top of transformation functionality it also removes duplicates. Rule: If there are multiple rows with same `route_id` and `sub_agency_id` only the first with filled licence number is kept.
517
- - rozšířené sloupce GTFS souborů (nestandardní rozšíření ROPID)
518
- - `trips.txt` – sloupec `headsign_icons`: řetězec dvouznakových kódů ikon (např. `"MbSb"`), uložen do `ropidgtfs_trips.headsign_icons`
519
- - `stop_times.txt` – sloupec `headsign_icons`: přepis na úrovni zastávky, uložen do `ropidgtfs_stop_times.headsign_icons`; má přednost před hodnotou z `trips.txt` pokud je zároveň vyplněn `stop_headsign`
520
515
  - data modely
521
516
  - RopidGTFSMetadataModel `ropidgtfs_metadata`
522
517
  - RopidGTFSAgencyModel `ropidgtfs_agency`
@@ -567,7 +562,6 @@ Všechny tabulky se nachází ve schématu `pid`
567
562
  - RopidGTFSPrecomputedMinMaxStopSequencesModel `ropidgtfs_precomputed_minmax_stop_sequences`
568
563
  - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures`
569
564
  - RopidGTFSPrecomputedTripScheduleModel `ropidgtfs_precomputed_trip_schedule`
570
- - RopidGTFSPrecomputedTripConnectionsModel `ropidgtfs_precomputed_trip_connections`
571
565
 
572
566
  #### task _RefreshPrecomputedTables_
573
567
 
@@ -587,7 +581,6 @@ Všechny tabulky se nachází ve schématu `pid`
587
581
  - RopidGTFSPrecomputedMinMaxStopSequencesModel `ropidgtfs_precomputed_minmax_stop_sequences`
588
582
  - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures`
589
583
  - RopidGTFSPrecomputedTripScheduleModel `ropidgtfs_precomputed_trip_schedule`
590
- - RopidGTFSPrecomputedTripConnectionsModel `ropidgtfs_precomputed_trip_connections`
591
584
 
592
585
  #### task _RefreshPublicGtfsDepartureCacheTask_
593
586
 
@@ -603,10 +596,8 @@ Task se stará o aktualizaci cache pro public odjezdy. Pouští se pravidelně c
603
596
  - ROPID FTP
604
597
  - transformace
605
598
  - [PublicDepartureCacheTransformation](../src/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.ts)
606
- - výsledný cache záznam obsahuje pole `connections` (garantované přestupy – přednačtené z `ropidgtfs_precomputed_trip_connections`, původně z `transfers.txt` kde `transfer_type = 1`) a pole `wheelchair_accessible` (přístupnost vozidla pro vozíčkáře z GTFS `trips.txt`)
607
- - pole `trip_headsign_icons`: pokud je pro danou zastávku spoje vyplněn `stop_headsign`, použije se `stop_headsign_icons` z `ropidgtfs_stop_times`; jinak se použije `headsign_icons` z `ropidgtfs_trips`; výsledek je řetězec dvouznakových kódů (např. `"MbMcSb"`) nebo `null`
608
599
  - data modely
609
- - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures` (obsahuje JOIN na `ropidgtfs_precomputed_trip_connections_tmp` přes `to_trip_id` a `to_stop_id`)
600
+ - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures`
610
601
 
611
602
  #### task _SaveStaticData_
612
603
 
@@ -622,19 +613,9 @@ Task se stará o aktualizaci statickych dat. Pouští se po dokončení načten
622
613
  - transformace
623
614
  - [DeparturesDirectionTransformation](../src/integration-engine/ropid-gtfs/workers/timetables/tasks/transformations/DeparturesDirectionTransformation.ts)
624
615
  - [MetroRailtrackDataTransformation](../src/integration-engine/ropid-gtfs/workers/timetables/tasks/transformations/MetroRailtrackDataTransformation.ts)
625
- - `NotPublicVehicles` – data se ukládají přímo do cache klíče `config:notPublicVehicles` přes `NotPublicVehiclesRedisRepository` (žádná DB tabulka)
626
616
  - data modely
627
617
  - RopidDeparturesDirections `ropid_departures_directions`
628
618
  - RopidGtfsMetroRailtrackGps `ropidgtfs_metro_railtrack_gps`
629
- - Cache `config:notPublicVehicles` – JSON blob struktury `INotPublicVehicles`:
630
- ```json
631
- {
632
- "tram": { "registrationNumbers": ["string"] },
633
- "road": { "registrationNumbers": ["string"] },
634
- "routeIds": ["string"]
635
- }
636
- ```
637
- `road` pokrývá autobusy i trolejbusy (evidenční čísla se mohou překrývat s tramvajemi, proto jsou oddělena). `routeIds` je whitelist číselných identifikátorů náhradních nebo dočasných linek (např. náhradní autobus za metro při výluce nebo mimořádné události), které se mají zobrazovat i bez platného JŘ spoje.
638
619
 
639
620
  #### task _EnsureCacheTask_
640
621
 
@@ -837,11 +818,7 @@ Worker má na starost zpracování a transformaci polohových dat, výpočet zpo
837
818
  - vstupní rabbitmq fronta
838
819
  - název: vehicle-positions.vehiclepositions.updateRunsGTFSTripId
839
820
  - TTL: 5 minut
840
- - parametry: `{ run, run_message, isNotPublic?, gtfs_route_type? }`
841
- - `run` - běh vozidla (ICommonRunsModel s volitelným gtfs_route_type)
842
- - `run_message` - zpráva o pozici vozidla
843
- - `isNotPublic` - volitelný příznak, zda se jedná o neveřejné vozidlo (např. náhradní autobus)
844
- - `gtfs_route_type` - volitelný GTFS typ vozidla (0=tram, 3=bus, atd.) pro správné mapování typu u ad-hoc vozidel
821
+ - parametry: `{ run, run_message }`
845
822
  - validační schéma: [UpdateRunsGtfsTripIdSchema](../src/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.ts)
846
823
  - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
847
824
  - název: vehicle-positions.vehiclepositions.updateDelay
@@ -1105,18 +1082,6 @@ Worker má na starost generování souborů s realtime daty pro `gtfsrt` endpoin
1105
1082
  - VPTripsModel `vehiclepositions_trips`
1106
1083
  - VPPositionsModel `vehiclepositions_positions`
1107
1084
 
1108
- **`wheelchairAccessible` ve VehicleDescriptor**
1109
-
1110
- Pole `wheelchairAccessible` je součástí standardního `VehicleDescriptor` ve feedech `vehicle_positions.pb` a `pid_feed.pb`:
1111
-
1112
- | Interní hodnota | Proto enum |
1113
- |---|---|
1114
- | `null` | `WHEELCHAIR_ACCESSIBLE_UNSPECIFIED = 0` |
1115
- | `true` | `WHEELCHAIR_ACCESSIBLE = 1` |
1116
- | `false` | `WHEELCHAIR_INACCESSIBLE = 2` |
1117
-
1118
- Zdrojem je pole `wheelchair_accessible` z tabulky `vehiclepositions_trips` (přenášené přes `IGtfsRtTripDto`). Vedle standardního pole zůstává zachováno rozšíření `.transit_realtime.ovapiVehicleDescriptor.wheelchairAccessible` s původní boolean/null hodnotou.
1119
-
1120
1085
  **Určení zpoždění v trip_updates.pb**
1121
1086
 
1122
1087
  Predikce odjezdů probíhá podle vzorce:
@@ -1222,10 +1187,6 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1222
1187
  - data modely
1223
1188
  - JISEventsModel `jis_events`
1224
1189
  - JISEventsRopidGTFSRoutesModel `jis_events_ropidgtfs_routes`
1225
- - poznámky k datovému modelu
1226
- - pole `effects` je pole až 3 unikátních řetězců; v GTFS-RT `Alert.effect` se použije pouze `effects[0]`, zbývající hodnoty jsou dostupné pouze v custom-format exportu
1227
- - pole `cause_detail` je volný text zpřesňující příčinu události; může být `null`
1228
- - pole `cause` obsahuje překlady do češtiny i angličtiny; anglické hodnoty jsou zahrnuty i ve výstupu GTFS-RT alert feedu
1229
1190
 
1230
1191
  #### _task: RefreshJISInfotextsTask_
1231
1192
 
@@ -1320,7 +1281,7 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1320
1281
  - retence dat
1321
1282
  - jízdní řády se generují 1-2x denně na 14 dní dopředu
1322
1283
  - polohová data si uchováváme 24 hodin (30 minut od poslední aktualizace, poté v historických tabulkách)
1323
- - popis vozidel se nepromazává přetrvávají do přepsání novými daty (fixní TTL bylo odstraněno)
1284
+ - popis vozidel si uchováváme 24 hodin
1324
1285
  - preset logy si uchováváme 8 hodin
1325
1286
  - JIS události a infotexty si uchováváme neomezeně
1326
1287
 
@@ -1463,12 +1424,6 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1463
1424
 
1464
1425
  - zdrojové tabulky
1465
1426
  - `ropidgtfs_precomputed_departures`, `ropidgtfs_stops`, `ropidgtfs_cis_stops`, `jis_infotexts`, `jis_infotexts_ropidgtfs_stops`, `ropid_departures_directions`, `vehiclepositions_positions`, `vehiclepositions_trips`
1466
- - odpověď obsahuje hlavičku `X-Golemio-Preset-Metadata: airConditionPossible=0|1`
1467
- - `1` pokud byl zadán query parametr `airCondition` s pravdivou hodnotou, `0` jinak
1468
- - slouží monitorovacím systémům (preset systémy monitorovacího centra ROPID) k detekci aktivního filtrování dle klimatizace
1469
- - kód nástupiště (`platform_code`)
1470
- - **vlaky**: preferuje se CIS hodnota `cis_stop_platform_code` uložená z MPVNet zpráv (`PlatformCodeResolver`); MPVNet atribut `$.stan` je před uložením oříznut na první platný segment (viz [parsování `stan` u vlaků](../processing/input_realtime_data/http_mpvnet.md#parsování-stanoviště-stan-u-vlaků))
1471
- - **ostatní typy**: používá se GTFS `platform_code` ze `stop_times.txt`
1472
1427
 
1473
1428
  ### PID Departure Boards v3
1474
1429
 
@@ -1476,42 +1431,6 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1476
1431
 
1477
1432
  - načte odjezdy pro přestupní tabule ve vozidlech a aktivní infotexty exportované z aplikace VYMI (JIS) Infotexty
1478
1433
 
1479
- ### PID Departure Boards v4
1480
-
1481
- #### _/v4/pid/transferboards_
1482
-
1483
- - načte odjezdy pro přestupní tabule ve vozidlech na základě aktuální polohy vozidla a aktivní infotexty exportované z aplikace VYMI (JIS) Infotexty
1484
- - parametry
1485
- - `aswId` + `vehicleRegistrationNumber` + `routeType` – identifikace zastávky a vozidla přes ASW číselník (vzájemně se vylučuje s `cisId`+`tripNumber`)
1486
- - `cisId` + `tripNumber` – identifikace zastávky a spoje přes CIS číselník (zatím neimplementováno, vrací 501)
1487
- - `timeFrom` – volitelný ISO8601 čas příjezdu (pokud není zadán, použije se reálný čas příjezdu z RT dat)
1488
- - `limit` – volitelný počet odjezdů (výchozí 8, max 30)
1489
- - cachováno na 5 sekund (stale-while-revalidate 5 sekund)
1490
- - zdrojové cache záznamy
1491
- - `gtfsStopsCache:*` – převod ASW node ID na GTFS stop_id
1492
- - `gtfsDelayComputation:*` – zjištění zastávek spoje a predikovaného času příjezdu
1493
- - `vpPublicCache:*` – aktuální poloha a zpoždění vozidla
1494
- - `gtfsPublicDepartureCache:*` – statické odjezdy ze zastávek (vč. `connections` a `wheelchair_accessible`)
1495
- - `vpPublicStopTimeCache:*` – live zastávkové časy pro spoje se známou polohou
1496
- - `jisCache:*` – aktivní infotexty pro dané zastávky
1497
- - načítání odjezdů z cache (`gtfsPublicDepartureCache`)
1498
- - z každé zastávky se načte `max(80, min(120, limit × 10))` položek v časovém okně `[plannedTimeFrom − 61 min, plannedTimeFrom + 60 min + delay]`; lookback 61 minut zajišťuje, že se zachytí i navazující spoj, jehož plánovaný odjezd je v minulosti, ale díky vlastnímu zpoždění (až 60 minut) dorazí na zastávku až po příjezdu aktuálního vozidla
1499
- - ihned po načtení se aplikuje pre-filter: odjezdy autobusů, tramvají a trolejbusů ze zastávek s jiným názvem než aktuální zastávka jsou zahozeny; metro/vlak/přívoz/lanovka procházejí vždy; odjezdy s neprázdným polem `connections[]` jsou zachovány bez ohledu na název zastávky (potenciální garantovaný přestup)
1500
- - garantované přestupy (`is_guaranteed_transfer`)
1501
- - označují odjezdy, které na příjezd aktuálního spoje čekají – detekováno z pole `connections` v `gtfsPublicDepartureCache`, kde `from_trip_id` odpovídá aktuálnímu spoji a `arrivalTime < departure_datetime + max_wait_sec`
1502
- - zobrazované minuty u garantovaného přestupu jsou nastaveny na čas příjezdu aktuálního spoje (ne na plánovaný odjezd navazujícího spoje)
1503
- - garantované přestupy jsou vyjmuty z filtru opačného směru a filtru podskupiny linky – jsou přidány do `tripIdsToKeep` před spuštěním `findRelevantTripIdsFromLines`, takže projdou bez ohledu na zastávkovou sekvenci
1504
- - typy "vždy zobrazit" (metro, vlak, přívoz, lanovka) filtr `findRelevantTripIdsFromLines` zcela přeskakují
1505
- - dostupnost pro vozíčkáře (`is_wheelchair_accessible`)
1506
- - **metro**: určeno výhradně podle `wheelchair_boarding` zastávky (hodnota `1` = přístupná)
1507
- - **ostatní typy dopravy**: primárně z RT dat vozidla (`detailed_info.is_wheelchair_accessible`); pokud RT data nejsou k dispozici, použije se GTFS příznak `wheelchair_accessible` z `trips.txt` (`1` = přístupné vozidlo)
1508
- - seskupování a omezení výstupu (`TransferDepartureCacheTransformation`)
1509
- - **metro**: seskupuje se podle `route_short_name + stop_id`; na jeden záznam výstupu připadají až 2 hodnoty v poli `departure_timestamp.minutes[]`
1510
- - **ostatní typy**: seskupuje se podle `route_short_name + direction_id`; na skupinu připadají nejvýše 2 samostatné záznamy odjezdů; `direction_id` se získává z cache poloh vozidel (klíč `route_short_name + trip_headsign`), výchozí hodnota je `0`
1511
- - konfigurace filtrování opačného směru (backtracking)
1512
- - `module.pid.vehicle-positions.transferboards.isOppositeDirectionFilterStopNameStrict` (boolean, výchozí `true`) – pokud `true`, zastávka je považována za "zpětnou" pouze pokud se shoduje `stop_id` i `stop_name`; pokud `false`, stačí shoda `stop_id`
1513
- - `module.pid.vehicle-positions.transferboards.countPreviousStopsToAllow` (integer, výchozí `0`) – kolik předchozích zastávek aktuálního spoje smí kandidátní spoj sdílet ve svých nadcházejících zastávkách, než je považován za zpětný směr a odfiltrován; `0` znamená žádná shoda není povolena
1514
-
1515
1434
  #### _/v3/pid/infotexts_
1516
1435
 
1517
1436
  - načte aktivní infotexty exportované z aplikace VYMI (JIS) Infotexty
@@ -1559,20 +1478,4 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1559
1478
  - podle názvů linek a jak daleko do budoucnosti se mají odjezdy navracet
1560
1479
  - limitování počtu odjezdů v každé skupině
1561
1480
  - EP je optimalizován pro vyšší zátěž z mobilní aplikace PID lítačka - požadavek do databáze z OG pouze v případě nutnosti obnovit cache s vehicle descriptory (klimatizace, usb nabíječky), jinak je vše z Redisu
1562
- - deduplikace odjezdů (pro seskupení "jeden za linka+směr") se provádí podle klíče `route_id + trip_headsign + platform_code`; toto se liší od původního přístupu deduplikace podle `stop_id` a správně pokrývá situace, kdy jeden ASW uzel odpovídá více GTFS `stop_id`
1563
- - dostupnost pro vozíčkáře (`is_wheelchair_accessible`) se určuje v pořadí priority:
1564
- 1. RT descriptor vozidla (`detailed_info.is_wheelchair_accessible` z vehicle positions)
1565
- 2. GTFS statický příznak `wheelchair_accessible` z `trips.txt` (`1` = přístupné), pokud RT data nejsou k dispozici
1566
1481
  - je použit `CompressionByDefaultMiddleware` a odpovědi jsou tak na output gateway komprimovány i pokud klient explicitně nepovolí komprimaci vhodnou hodnotou hlavičky `Accept-Encoding` (lze však komprimaci explicitně zakázat hodnotou `identity`)
1567
-
1568
- ### JIS v1
1569
-
1570
- #### _/v1/jis/events/custom-format_
1571
-
1572
- - vrátí seznam publikovaných událostí ve vlastním formátu pro externí konzumenty (fallback endpoint pro webhooky)
1573
- - parametry
1574
- - `displayPeriodStart` / `displayPeriodEnd` – filtrování podle překryvu zobrazovacího okna události s požadovaným rozsahem (ISO 8601)
1575
- - `organizationNames` – filtrování podle organizace (pole řetězců)
1576
- - `type` – filtrování podle typu události (`INCIDENT`, `DISRUPTION`, `SERVICE_CHANGE`)
1577
- - zdrojové tabulky: `jis_events`, `jis_events_ropidgtfs_routes`
1578
- - formát odpovědi: viz schéma `EventCustomFormat` v [openapi-output.yaml](./openapi-output.yaml)
package/docs/jis/index.md CHANGED
@@ -246,20 +246,3 @@ flowchart TB
246
246
  ```
247
247
 
248
248
  Zdroj a formát dat pro aktivní stahování jsou dále více popsány v implementační dokumentaci ([události](../implementation_documentation.md#jis-events), [infotexty](../implementation_documentation.md#jis-infotexts)), stejně tak jako [worker a tasky](../implementation_documentation.md#jisworker) a popis [uložení dat](../implementation_documentation.md#uložení-dat) včetně databázového schema a popisu retence.
249
-
250
- ## Datový model událostí — vybraná pole
251
-
252
- ### `cause_detail`
253
-
254
- Volitelné textové upřesnění příčiny události (`cause_detail`). Může být `null`. Dostupné v custom-format exportu (`/v1/jis/events/custom-format`) i v GTFS-RT alert feedu jako rozšíření. Struktura:
255
- ```json
256
- { "cs": "Nehoda na křižovatce", "en": null }
257
- ```
258
-
259
- ### `cause` — anglický překlad
260
-
261
- Pole `cause` obsahuje překlad příčiny události do češtiny i do angličtiny. Anglická hodnota je zahrnuta i ve výstupu GTFS-RT alert feedu (pole `Alert.cause` v `pid_feed.pb` i `alerts.pb`).
262
-
263
- ### `effects` (pole příčin dopadu)
264
-
265
- Pole `effects` může obsahovat 1–3 unikátní řetězcové hodnoty. Pouze `effects[0]` se mapuje na standardní GTFS-RT `Alert.effect`; zbývající hodnoty jsou dostupné výhradně v custom-format exportu.
@@ -92,27 +92,6 @@
92
92
  ```
93
93
 
94
94
  ## Vlaky
95
-
96
- ### Parsování stanoviště (`stan`) u vlaků
97
-
98
- Atribut `stan` v elementu `<zast>` u vlaků může obsahovat složený řetězec ve formátu `část1/část2` nebo `část1 část2` (např. `5S/22S`, `-/6`, `2/3`). Jako kanonický kód nástupiště se použije **první platný segment** – první token oddělený lomítkem nebo mezerou, pokud není prázdný nebo `-`.
99
-
100
- Příklady výsledků po parsování:
101
-
102
- | Vstup (`stan`) | Výsledný `platform_code` |
103
- |---|---|
104
- | `1/3` | `1` |
105
- | `-/BUS` | `BUS` |
106
- | `2/100V` | `2` |
107
- | `5A/- A C` | `5A` |
108
- | `5S/22S` | `5S` |
109
-
110
- Parsování provádí `MpvStopParser.parsePlatformCode()`. Výsledný kód je uložen jako `cis_stop_platform_code` v tabulce `vehiclepositions_positions` a na výstupu se pro vlaky preferuje před GTFS `platform_code` (viz `PlatformCodeResolver`).
111
-
112
- ### Zprávy s informací o nástupišti jako syntetická poloha
113
-
114
- Pokud MPVNet zpráva vlaku obsahuje informaci o nástupišti (`$.stan`) pro budoucí zastávku a vlak ještě nemá žádnou aktivní RT polohu, vytvoří se syntetická poloha ve stavu `before_track` na základě dat z této zastávky. Díky tomu lze zobrazit kód nástupiště ještě před fyzickým příjezdem vlaku na stanoviště. Kód nástupiště se parsuje stejným způsobem jako výše (`MpvStopParser.parsePlatformCode()`).
115
-
116
95
  ```xml
117
96
  <?xml version="1.0" encoding="utf-8"?>
118
97
 
@@ -13,7 +13,6 @@
13
13
  - duplikace vlakových spojů a pozic podle block id (určení tracking podle cis stop id)
14
14
  - obohacení spojů GTFS daty (včetně oběhu a kmenové linky)
15
15
  - upsert asociovaných pozic
16
- - **syntetická poloha z informace o nástupišti**: pokud zpráva obsahuje atribut `$.stan` pro budoucí zastávku a vlak ještě nemá aktivní RT polohu, vytvoří se syntetická pozice ve stavu `before_track` pro tuto zastávku – umožňuje zobrazit kód nástupiště před fyzickým příjezdem vlaku
17
16
  - spoje se pošlou do fronty `updateDelay`
18
17
  - updateDelay
19
18
  - opět duplikace vlakových spojů, upsert asociovaných pozic
@@ -19,7 +19,7 @@
19
19
  - jinak je `tracking 0`
20
20
  - Rovněž se podle kmenové linky a oběhu vytvoří následující spoje (stav je `unknown`, `tracking` je vždy 0)
21
21
  - navíc se předchozímu spoji vytvoří nová pozice s `tracking 0`, všechny spoje se odešlou na `updateDelay`
22
- - Pokud je spoj vyhodnocen jako neveřejný (např. mazačka, náhradní autobus), vytvoří se nový spoj a pozice se stavem `not_public`, tím processing končí
22
+ - Pokud je spoj vyhodnocen jako neveřejný (např. mazačka), vytvoří se nový spoj a pozice se stavem `not_public`, tím processing končí
23
23
  - updateDelay
24
24
  - upsert asociovaných pozic
25
25
  - opětovné načtení asociovaných pozic z DB
@@ -33,7 +33,6 @@
33
33
  - pokud je pozice duplicitní (existuje pozice se stejným `origin_timestamp`), stav je `duplicate`
34
34
  - pokud vozidlo jede do garáže, je stav `invisible`
35
35
  - jinak je stav `after_track`
36
- - **zvláštní případ**: pokud má pozice `cis_last_stop_id = null`, stav se znovu nevyhodnocuje – pozice si zachovává poslední známý stav (zmrazení stavu); to zabraňuje nežádoucímu cyklování zpět do `untracked` pouze kvůli chybějící CIS zastávce
37
36
  - Tracking (`tracking` je `2`)
38
37
  - pokud je vozidlo 200 metrů od nejblizšího bodu na trase, stav je `off_track`
39
38
  - pokud je vozidlo v zastávce, je stav `at_stop`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "5.7.3-dev.2387345183",
3
+ "version": "5.7.3-rc.2387358195",
4
4
  "description": "Golemio PID Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,14 +0,0 @@
1
- import { INotPublicVehicles } from "../../../../schema-definitions/datasources/static-data";
2
- import { RedisModel } from "@golemio/core/dist/integration-engine/models/RedisModel";
3
- export declare class NotPublicVehiclesRedisRepository extends RedisModel {
4
- static NAMESPACE_PREFIX: string;
5
- constructor();
6
- /**
7
- * Save the not-public vehicles configuration to Redis
8
- */
9
- saveConfig(config: INotPublicVehicles): Promise<void>;
10
- /**
11
- * Get the current not-public vehicles configuration from Redis
12
- */
13
- getConfig(): Promise<INotPublicVehicles>;
14
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var NotPublicVehiclesRedisRepository_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.NotPublicVehiclesRedisRepository = void 0;
14
- const const_1 = require("../../../../schema-definitions/ropid-gtfs/redis/const");
15
- const RedisModel_1 = require("@golemio/core/dist/integration-engine/models/RedisModel");
16
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
17
- let NotPublicVehiclesRedisRepository = NotPublicVehiclesRedisRepository_1 = class NotPublicVehiclesRedisRepository extends RedisModel_1.RedisModel {
18
- constructor() {
19
- super("NotPublicVehiclesRedisRepository", {
20
- isKeyConstructedFromData: false,
21
- prefix: NotPublicVehiclesRedisRepository_1.NAMESPACE_PREFIX,
22
- });
23
- }
24
- /**
25
- * Save the not-public vehicles configuration to Redis
26
- */
27
- async saveConfig(config) {
28
- await this.set(const_1.NOT_PUBLIC_VEHICLES_KEY, JSON.stringify(config));
29
- }
30
- /**
31
- * Get the current not-public vehicles configuration from Redis
32
- */
33
- async getConfig() {
34
- const value = await this.get(const_1.NOT_PUBLIC_VEHICLES_KEY);
35
- if (!value) {
36
- return { road: { registrationNumbers: [] }, tram: { registrationNumbers: [] }, routeIds: [] };
37
- }
38
- return JSON.parse(value);
39
- }
40
- };
41
- exports.NotPublicVehiclesRedisRepository = NotPublicVehiclesRedisRepository;
42
- NotPublicVehiclesRedisRepository.NAMESPACE_PREFIX = const_1.CONFIG_NAMESPACE_PREFIX;
43
- exports.NotPublicVehiclesRedisRepository = NotPublicVehiclesRedisRepository = NotPublicVehiclesRedisRepository_1 = __decorate([
44
- (0, tsyringe_1.injectable)(),
45
- __metadata("design:paramtypes", [])
46
- ], NotPublicVehiclesRedisRepository);
47
- //# sourceMappingURL=NotPublicVehiclesRedisRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotPublicVehiclesRedisRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,iFAA+F;AAC/F,wFAAqF;AACrF,iEAAgE;AAGzD,IAAM,gCAAgC,wCAAtC,MAAM,gCAAiC,SAAQ,uBAAU;IAG5D;QACI,KAAK,CAAC,kCAAkC,EAAE;YACtC,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,kCAAgC,CAAC,gBAAgB;SAC5D,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CAAC,MAA0B;QAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,+BAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,+BAAuB,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAuB,CAAC;IACnD,CAAC;;AA1BQ,4EAAgC;AAC3B,iDAAgB,GAAG,+BAAuB,AAA1B,CAA2B;2CADhD,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;;GACA,gCAAgC,CA2B5C"}
@@ -1,9 +0,0 @@
1
- import { IDataSourceProvider } from "../../../shared/datasources/IDataSourceProvider";
2
- import { INotPublicVehicles } from "../../../../schema-definitions/datasources/static-data";
3
- import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
4
- import { IDataSource } from "@golemio/core/dist/integration-engine";
5
- export declare class NotPublicVehiclesDataSourceProvider implements IDataSourceProvider<INotPublicVehicles> {
6
- private config;
7
- constructor(config: ISimpleConfig);
8
- getDataSource(): IDataSource;
9
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.NotPublicVehiclesDataSourceProvider = void 0;
16
- const static_data_1 = require("../../../../schema-definitions/datasources/static-data");
17
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
18
- const integration_engine_1 = require("@golemio/core/dist/integration-engine");
19
- const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
20
- const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
21
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
22
- let NotPublicVehiclesDataSourceProvider = class NotPublicVehiclesDataSourceProvider {
23
- constructor(config) {
24
- this.config = config;
25
- }
26
- getDataSource() {
27
- const baseUrl = this.config.getValue("module.pid.staticData.baseUrl");
28
- const urlPath = this.config.getValue("module.pid.staticData.notPublicVehicles.path");
29
- const url = new URL(urlPath, baseUrl);
30
- return new integration_engine_1.DataSource("notPublicVehiclesDataSource", new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
31
- headers: {
32
- Accept: "application/json",
33
- },
34
- method: "GET",
35
- timeoutInSeconds: 20,
36
- url: url.toString(),
37
- responseType: "json",
38
- }), new integration_engine_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator("notPublicVehiclesDataSourceValidator", static_data_1.notPublicVehiclesJsonSchema));
39
- }
40
- };
41
- exports.NotPublicVehiclesDataSourceProvider = NotPublicVehiclesDataSourceProvider;
42
- exports.NotPublicVehiclesDataSourceProvider = NotPublicVehiclesDataSourceProvider = __decorate([
43
- (0, tsyringe_1.injectable)(),
44
- __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
45
- __metadata("design:paramtypes", [Object])
46
- ], NotPublicVehiclesDataSourceProvider);
47
- //# sourceMappingURL=NotPublicVehiclesDataSourceProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotPublicVehiclesDataSourceProvider.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wFAA+F;AAE/F,wEAAqE;AACrE,8EAAsG;AACtG,6IAA0I;AAC1I,mFAAkF;AAClF,iEAAwE;AAGjE,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;IAC5C,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtE,aAAa;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,+BAA+B,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,8CAA8C,CAAC,CAAC;QAC7F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtC,OAAO,IAAI,+BAAU,CACjB,6BAA6B,EAC7B,IAAI,qDAAyB,CAAC;YAC1B,OAAO,EAAE;gBACL,MAAM,EAAE,kBAAkB;aAC7B;YACD,MAAM,EAAE,KAAK;YACb,gBAAgB,EAAE,EAAE;YACpB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,YAAY,EAAE,MAAM;SACvB,CAAC,EACF,IAAI,yCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,sCAAsC,EAAE,yCAA2B,CAAC,CAC/F,CAAC;IACN,CAAC;CACJ,CAAA;AAvBY,kFAAmC;8CAAnC,mCAAmC;IAD/C,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GADlC,mCAAmC,CAuB/C"}
@@ -1,10 +0,0 @@
1
- import { INotPublicVehicles } from "../../../../schema-definitions/datasources/static-data";
2
- import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
3
- export declare class NotPublicVehiclesRedisRepository {
4
- private redisConnector;
5
- constructor(redisConnector: IoRedisConnector);
6
- /**
7
- * Get the current not-public vehicles configuration from Redis
8
- */
9
- getConfig(): Promise<INotPublicVehicles>;
10
- }
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.NotPublicVehiclesRedisRepository = void 0;
16
- const const_1 = require("../../../../schema-definitions/ropid-gtfs/redis/const");
17
- const IoRedisConnector_1 = require("@golemio/core/dist/helpers/data-access/redis/IoRedisConnector");
18
- const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
19
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
20
- let NotPublicVehiclesRedisRepository = class NotPublicVehiclesRedisRepository {
21
- constructor(redisConnector) {
22
- this.redisConnector = redisConnector;
23
- }
24
- /**
25
- * Get the current not-public vehicles configuration from Redis
26
- */
27
- async getConfig() {
28
- if (!this.redisConnector.isConnected()) {
29
- await this.redisConnector.connect();
30
- }
31
- const connection = this.redisConnector.getConnection();
32
- const value = await connection.get(`${const_1.CONFIG_NAMESPACE_PREFIX}:${const_1.NOT_PUBLIC_VEHICLES_KEY}`);
33
- if (!value) {
34
- return { road: { registrationNumbers: [] }, tram: { registrationNumbers: [] }, routeIds: [] };
35
- }
36
- return JSON.parse(value);
37
- }
38
- };
39
- exports.NotPublicVehiclesRedisRepository = NotPublicVehiclesRedisRepository;
40
- exports.NotPublicVehiclesRedisRepository = NotPublicVehiclesRedisRepository = __decorate([
41
- (0, tsyringe_1.injectable)(),
42
- __param(0, (0, tsyringe_1.inject)(ioc_1.ContainerToken.RedisConnector)),
43
- __metadata("design:paramtypes", [IoRedisConnector_1.IoRedisConnector])
44
- ], NotPublicVehiclesRedisRepository);
45
- //# sourceMappingURL=NotPublicVehiclesRedisRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotPublicVehiclesRedisRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iFAA+F;AAC/F,oGAAiG;AACjG,+DAAuE;AACvE,iEAAwE;AAGjE,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IACzC,YAA2D,cAAgC;QAAhC,mBAAc,GAAd,cAAc,CAAkB;IAAG,CAAC;IAE/F;;OAEG;IACI,KAAK,CAAC,SAAS;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+BAAuB,IAAI,+BAAuB,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAuB,CAAC;IACnD,CAAC;CACJ,CAAA;AAjBY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;qCAAyB,mCAAgB;GADlF,gCAAgC,CAiB5C"}
@@ -1,3 +0,0 @@
1
- import { DependencyContainer } from "@golemio/core/dist/shared/tsyringe";
2
- declare const ogVehiclePositionsContainer: DependencyContainer;
3
- export { ogVehiclePositionsContainer as OgVehiclePositionsContainer };
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OgVehiclePositionsContainer = void 0;
4
- const NotPublicVehiclesRedisRepository_1 = require("../data-access/cache/NotPublicVehiclesRedisRepository");
5
- const PositionRepository_1 = require("../data-access/PositionRepository");
6
- const TripRepository_1 = require("../data-access/TripRepository");
7
- const VehicleDescriptorRepository_1 = require("../data-access/VehicleDescriptorRepository");
8
- const VehicleTypeRepository_1 = require("../data-access/VehicleTypeRepository");
9
- const ProcessedPositionRepository_1 = require("../data-access/views/ProcessedPositionRepository");
10
- const TripWithLastPositionRepository_1 = require("../data-access/views/TripWithLastPositionRepository");
11
- const Di_1 = require("@golemio/core/dist/output-gateway/ioc/Di");
12
- const OgVehiclePositionsToken_1 = require("./OgVehiclePositionsToken");
13
- const ogVehiclePositionsContainer = Di_1.OutputGatewayContainer.createChildContainer();
14
- exports.OgVehiclePositionsContainer = ogVehiclePositionsContainer;
15
- //#region Repositories
16
- ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.NotPublicVehiclesRedisRepository, NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository);
17
- ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.PositionRepository, PositionRepository_1.PositionRepository);
18
- ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.TripRepository, TripRepository_1.TripRepository);
19
- ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.VehicleTypeRepository, VehicleTypeRepository_1.VehicleTypeRepository);
20
- ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.VehicleDescriptorRepository, VehicleDescriptorRepository_1.VehicleDescriptorRepository);
21
- ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.TripWithLastPositionRepository, TripWithLastPositionRepository_1.TripWithLastPositionRepository);
22
- ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.ProcessedPositionRepository, ProcessedPositionRepository_1.ProcessedPositionRepository);
23
- //# sourceMappingURL=Di.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,4GAAyG;AACzG,0EAAuE;AACvE,kEAA+D;AAC/D,4FAAyF;AACzF,gFAA6E;AAC7E,kGAA+F;AAC/F,wGAAqG;AACrG,iEAAkF;AAElF,uEAAoE;AAEpE,MAAM,2BAA2B,GAAwB,2BAAsB,CAAC,oBAAoB,EAAE,CAAC;AAkB/D,kEAA2B;AAhBnE,sBAAsB;AACtB,2BAA2B,CAAC,iBAAiB,CACzC,iDAAuB,CAAC,gCAAgC,EACxD,mEAAgC,CACnC,CAAC;AACF,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;AAC9G,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;AACtG,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AACpH,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;AAChI,2BAA2B,CAAC,iBAAiB,CACzC,iDAAuB,CAAC,8BAA8B,EACtD,+DAA8B,CACjC,CAAC;AACF,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- export declare const OgVehiclePositionsToken: {
2
- NotPublicVehiclesRedisRepository: symbol;
3
- PositionRepository: symbol;
4
- TripRepository: symbol;
5
- VehicleTypeRepository: symbol;
6
- VehicleDescriptorRepository: symbol;
7
- TripWithLastPositionRepository: symbol;
8
- ProcessedPositionRepository: symbol;
9
- };
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OgVehiclePositionsToken = void 0;
4
- exports.OgVehiclePositionsToken = {
5
- //#region Repositories
6
- NotPublicVehiclesRedisRepository: Symbol("NotPublicVehiclesRedisRepository"),
7
- PositionRepository: Symbol("PositionRepository"),
8
- TripRepository: Symbol("TripRepository"),
9
- VehicleTypeRepository: Symbol("VehicleTypeRepository"),
10
- VehicleDescriptorRepository: Symbol("VehicleDescriptorRepository"),
11
- TripWithLastPositionRepository: Symbol("TripWithLastPositionRepository"),
12
- ProcessedPositionRepository: Symbol("ProcessedPositionRepository"),
13
- //#endregion
14
- };
15
- //# sourceMappingURL=OgVehiclePositionsToken.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OgVehiclePositionsToken.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG;IACnC,sBAAsB;IACtB,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,8BAA8B,EAAE,MAAM,CAAC,gCAAgC,CAAC;IACxE,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,YAAY;CACf,CAAC"}
@@ -1,3 +0,0 @@
1
- import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
- import { INotPublicVehicles } from "./interfaces/NotPublicVehiclesDataInterface";
3
- export declare const notPublicVehiclesJsonSchema: JSONSchemaType<INotPublicVehicles>;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.notPublicVehiclesJsonSchema = void 0;
4
- exports.notPublicVehiclesJsonSchema = {
5
- type: "object",
6
- properties: {
7
- tram: {
8
- type: "object",
9
- properties: {
10
- registrationNumbers: {
11
- type: "array",
12
- items: {
13
- type: "string",
14
- },
15
- },
16
- },
17
- required: ["registrationNumbers"],
18
- },
19
- road: {
20
- type: "object",
21
- properties: {
22
- registrationNumbers: {
23
- type: "array",
24
- items: {
25
- type: "string",
26
- },
27
- },
28
- },
29
- required: ["registrationNumbers"],
30
- },
31
- routeIds: {
32
- type: "array",
33
- items: {
34
- type: "string",
35
- },
36
- },
37
- },
38
- required: ["tram", "road", "routeIds"],
39
- };
40
- //# sourceMappingURL=NotPublicVehiclesJsonSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotPublicVehiclesJsonSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,2BAA2B,GAAuC;IAC3E,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,mBAAmB,EAAE;oBACjB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;qBACjB;iBACJ;aACJ;YACD,QAAQ,EAAE,CAAC,qBAAqB,CAAC;SACpC;QACD,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,mBAAmB,EAAE;oBACjB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;qBACjB;iBACJ;aACJ;YACD,QAAQ,EAAE,CAAC,qBAAqB,CAAC;SACpC;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;KACJ;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;CACzC,CAAC"}