@golemio/pid 5.9.1-dev.2464819473 → 5.9.1
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.
|
@@ -1522,6 +1522,44 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
|
|
|
1522
1522
|
- zdrojové tabulky
|
|
1523
1523
|
- `jis_infotexts`, `jis_infotexts_ropidgtfs_stops`, `ropidgtfs_stops`
|
|
1524
1524
|
|
|
1525
|
+
### PID Departure Boards v4
|
|
1526
|
+
|
|
1527
|
+
#### _/v4/pid/transferboards_
|
|
1528
|
+
|
|
1529
|
+
- 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
|
|
1530
|
+
- parametry
|
|
1531
|
+
- `aswId` + `vehicleRegistrationNumber` + `routeType` – identifikace zastávky a vozidla přes ASW číselník (vzájemně se vylučuje s `cisId`+`tripNumber`)
|
|
1532
|
+
- `cisId` + `tripNumber` – identifikace zastávky a spoje přes CIS číselník (zatím neimplementováno, vrací 501)
|
|
1533
|
+
- `timeFrom` – volitelný ISO8601 čas příjezdu (pokud není zadán, použije se reálný čas příjezdu z RT dat)
|
|
1534
|
+
- `limit` – volitelný počet odjezdů (výchozí 8, max 30)
|
|
1535
|
+
- cachováno na 5 sekund (stale-while-revalidate 5 sekund)
|
|
1536
|
+
- zdrojové cache záznamy
|
|
1537
|
+
- `gtfsStopsCache:*` – převod ASW node ID na GTFS stop_id
|
|
1538
|
+
- `gtfsDelayComputation:*` – zjištění zastávek spoje a predikovaného času příjezdu
|
|
1539
|
+
- `vpPublicCache:*` – aktuální poloha a zpoždění vozidla
|
|
1540
|
+
- `gtfsPublicDepartureCache:*` – statické odjezdy ze zastávek (vč. `connections` a `wheelchair_accessible`)
|
|
1541
|
+
- `vpPublicStopTimeCache:*` – live zastávkové časy pro spoje se známou polohou
|
|
1542
|
+
- `jisCache:*` – aktivní infotexty pro dané zastávky
|
|
1543
|
+
- načítání odjezdů z cache (`gtfsPublicDepartureCache`)
|
|
1544
|
+
- 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
|
|
1545
|
+
- 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)
|
|
1546
|
+
- garantované přestupy (`is_guaranteed_transfer`)
|
|
1547
|
+
- 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`
|
|
1548
|
+
- 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)
|
|
1549
|
+
- 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
|
|
1550
|
+
- typy "vždy zobrazit" (metro, vlak, přívoz, lanovka) filtr `findRelevantTripIdsFromLines` zcela přeskakují
|
|
1551
|
+
- dostupnost pro vozíčkáře (`is_wheelchair_accessible`)
|
|
1552
|
+
- **metro**: určeno výhradně podle `wheelchair_boarding` zastávky (hodnota `1` = přístupná)
|
|
1553
|
+
- **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)
|
|
1554
|
+
- odfiltrování odjezdů stejné linky v opačném směru (`TransferFacade.isDifferentLine`) — odjezdy se shodným `route_short_name` + `route_type`, ale odlišným `direction_id` oproti aktuálnímu vozidlu jsou odstraněny; odjezdy s neznámým `direction_id` (null) jsou ponechány
|
|
1555
|
+
- seskupování a omezení výstupu (`TransferDepartureCacheTransformation`)
|
|
1556
|
+
- **metro**: seskupuje se podle `route_short_name + route_type + direction_id`; na jeden záznam výstupu připadají až 2 hodnoty v poli `departure_timestamp.minutes[]`
|
|
1557
|
+
- **ostatní typy**: seskupuje se podle `route_short_name + route_type + direction_id`; na skupinu připadají nejvýše 2 samostatné záznamy odjezdů
|
|
1558
|
+
- `direction_id` se řeší s fallback řetězcem: `departure.direction_id` (z cache odjezdů) → `position.detailed_info.direction_id` (z RT poloh vozidel) → in-memory cache (klíč `route_short_name + trip_headsign`) → `0`
|
|
1559
|
+
- konfigurace filtrování opačného směru (backtracking)
|
|
1560
|
+
- `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`
|
|
1561
|
+
- `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
|
|
1562
|
+
|
|
1525
1563
|
### Public v2
|
|
1526
1564
|
|
|
1527
1565
|
#### _/v2/public/gtfs/trips/{gtfsTripId}_
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/pid",
|
|
3
|
-
"version": "5.9.1
|
|
3
|
+
"version": "5.9.1",
|
|
4
4
|
"description": "Golemio PID Module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"url": "https://gitlab.com/operator-ict/golemio/code/modules/pid"
|
|
34
34
|
},
|
|
35
35
|
"engines": {
|
|
36
|
-
"node": ">=
|
|
36
|
+
"node": ">=20.0.0",
|
|
37
37
|
"npm": ">=8.0.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@types/chai": "4.2.3",
|
|
49
49
|
"@types/chai-as-promised": "7.1.2",
|
|
50
50
|
"@types/mocha": "^10.0.10",
|
|
51
|
-
"@types/node": "^
|
|
51
|
+
"@types/node": "^20.12.7",
|
|
52
52
|
"@types/pg-copy-streams": "^1.2.5",
|
|
53
53
|
"@types/sinon": "^9.0.10",
|
|
54
54
|
"@types/supertest": "^2.0.10",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"dotenv": "^8.2.0",
|
|
62
62
|
"eslint": "^8.1.1",
|
|
63
63
|
"husky": "^4.3.7",
|
|
64
|
-
"mocha": "^
|
|
64
|
+
"mocha": "^10.0.0",
|
|
65
65
|
"npm-run-all": "^4.1.5",
|
|
66
66
|
"nyc": "^17.1.0",
|
|
67
67
|
"prettier": "^2.5.1",
|
|
@@ -73,12 +73,12 @@
|
|
|
73
73
|
"ts-node": "^10.9.2",
|
|
74
74
|
"ts-patch": "^3.3.0",
|
|
75
75
|
"tsconfig-paths": "^4.2.0",
|
|
76
|
-
"typedoc": "0.28.
|
|
76
|
+
"typedoc": "^0.28.14",
|
|
77
77
|
"typescript": "^5.9.3",
|
|
78
78
|
"typescript-transform-paths": "^3.5.5"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
|
-
"@golemio/core": "^3.0.
|
|
81
|
+
"@golemio/core": "^3.0.1-dev.2 || ^3.0.0 || ^2.0.1"
|
|
82
82
|
},
|
|
83
83
|
"overrides": {
|
|
84
84
|
"@google-cloud/storage": {
|