@golemio/pid 6.4.1-dev.3053867815 → 6.4.1-dev.3054859807
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.
- package/db/example/00_clear_test_data.sql +1 -0
- package/db/example/24_jis_delayed_segments.sql +142 -0
- package/db/migrations/postgresql/20261027100000-jis-delayed-segments.js +16 -0
- package/db/migrations/postgresql/sqls/20250127134438-departure-additional-indexes-down.sql +20 -2
- package/db/migrations/postgresql/sqls/20261027100000-jis-delayed-segments-down.sql +17 -0
- package/db/migrations/postgresql/sqls/20261027100000-jis-delayed-segments-up.sql +42 -0
- package/dist/integration-engine/jis/datasources/JISDelayedSegmentsDataSourceFactory.d.ts +9 -0
- package/dist/integration-engine/jis/datasources/JISDelayedSegmentsDataSourceFactory.js +54 -0
- package/dist/integration-engine/jis/datasources/JISDelayedSegmentsDataSourceFactory.js.map +1 -0
- package/dist/integration-engine/jis/ioc/Di.js +10 -0
- package/dist/integration-engine/jis/ioc/Di.js.map +1 -1
- package/dist/integration-engine/jis/ioc/JISContainerToken.d.ts +5 -0
- package/dist/integration-engine/jis/ioc/JISContainerToken.js +5 -0
- package/dist/integration-engine/jis/ioc/JISContainerToken.js.map +1 -1
- package/dist/integration-engine/jis/repositories/JISDelayedSegmentEnrichmentRepository.d.ts +14 -0
- package/dist/integration-engine/jis/repositories/JISDelayedSegmentEnrichmentRepository.js +69 -0
- package/dist/integration-engine/jis/repositories/JISDelayedSegmentEnrichmentRepository.js.map +1 -0
- package/dist/integration-engine/jis/repositories/JISDelayedSegmentsRepository.d.ts +23 -0
- package/dist/integration-engine/jis/repositories/JISDelayedSegmentsRepository.js +73 -0
- package/dist/integration-engine/jis/repositories/JISDelayedSegmentsRepository.js.map +1 -0
- package/dist/integration-engine/jis/repositories/helpers/JISDelayedSegmentEnrichmentQuery.d.ts +13 -0
- package/dist/integration-engine/jis/repositories/helpers/JISDelayedSegmentEnrichmentQuery.js +266 -0
- package/dist/integration-engine/jis/repositories/helpers/JISDelayedSegmentEnrichmentQuery.js.map +1 -0
- package/dist/integration-engine/jis/repositories/interfaces/IJISDelayedSegmentEnrichmentParams.d.ts +23 -0
- package/dist/integration-engine/jis/repositories/interfaces/IJISDelayedSegmentEnrichmentParams.js +2 -0
- package/dist/integration-engine/jis/repositories/interfaces/IJISDelayedSegmentEnrichmentParams.js.map +1 -0
- package/dist/integration-engine/jis/services/JISDelayedSegmentsDataService.d.ts +38 -0
- package/dist/integration-engine/jis/services/JISDelayedSegmentsDataService.js +174 -0
- package/dist/integration-engine/jis/services/JISDelayedSegmentsDataService.js.map +1 -0
- package/dist/integration-engine/jis/workers/JISWorker.js +1 -0
- package/dist/integration-engine/jis/workers/JISWorker.js.map +1 -1
- package/dist/integration-engine/jis/workers/tasks/RefreshDelayedSegmentsTask.d.ts +15 -0
- package/dist/integration-engine/jis/workers/tasks/RefreshDelayedSegmentsTask.js +55 -0
- package/dist/integration-engine/jis/workers/tasks/RefreshDelayedSegmentsTask.js.map +1 -0
- package/dist/output-gateway/jis/controllers/v1/V1DelayedSegmentsController.d.ts +9 -0
- package/dist/output-gateway/jis/controllers/v1/V1DelayedSegmentsController.js +54 -0
- package/dist/output-gateway/jis/controllers/v1/V1DelayedSegmentsController.js.map +1 -0
- package/dist/output-gateway/jis/data-access/JISDelayedSegmentsRepository.d.ts +14 -0
- package/dist/output-gateway/jis/data-access/JISDelayedSegmentsRepository.js +56 -0
- package/dist/output-gateway/jis/data-access/JISDelayedSegmentsRepository.js.map +1 -0
- package/dist/output-gateway/jis/domain/IJISDelayedSegmentDto.d.ts +12 -0
- package/dist/output-gateway/jis/domain/IJISDelayedSegmentDto.js +2 -0
- package/dist/output-gateway/jis/domain/IJISDelayedSegmentDto.js.map +1 -0
- package/dist/output-gateway/jis/dto/interfaces/IDelayedSegmentsQueryDto.d.ts +5 -0
- package/dist/output-gateway/jis/dto/interfaces/IDelayedSegmentsQueryDto.js +2 -0
- package/dist/output-gateway/jis/dto/interfaces/IDelayedSegmentsQueryDto.js.map +1 -0
- package/dist/output-gateway/jis/helpers/JISDelayedSegmentInfoPanelStopsFilter.d.ts +8 -0
- package/dist/output-gateway/jis/helpers/JISDelayedSegmentInfoPanelStopsFilter.js +13 -0
- package/dist/output-gateway/jis/helpers/JISDelayedSegmentInfoPanelStopsFilter.js.map +1 -0
- package/dist/output-gateway/jis/ioc/Di.js +6 -0
- package/dist/output-gateway/jis/ioc/Di.js.map +1 -1
- package/dist/output-gateway/jis/ioc/OgJisToken.d.ts +3 -0
- package/dist/output-gateway/jis/ioc/OgJisToken.js +3 -0
- package/dist/output-gateway/jis/ioc/OgJisToken.js.map +1 -1
- package/dist/output-gateway/jis/routers/v1/V1JISRouter.d.ts +2 -0
- package/dist/output-gateway/jis/routers/v1/V1JISRouter.js +9 -0
- package/dist/output-gateway/jis/routers/v1/V1JISRouter.js.map +1 -1
- package/dist/output-gateway/jis/transformations/JISDelayedSegmentsTransformation.d.ts +7 -0
- package/dist/output-gateway/jis/transformations/JISDelayedSegmentsTransformation.js +32 -0
- package/dist/output-gateway/jis/transformations/JISDelayedSegmentsTransformation.js.map +1 -0
- package/dist/schema-definitions/jis/datasources/MapaPidDelayShapesJsonSchema.d.ts +3 -0
- package/dist/schema-definitions/jis/datasources/MapaPidDelayShapesJsonSchema.js +16 -0
- package/dist/schema-definitions/jis/datasources/MapaPidDelayShapesJsonSchema.js.map +1 -0
- package/dist/schema-definitions/jis/datasources/interfaces/IMapaPidDelayShape.d.ts +10 -0
- package/dist/schema-definitions/jis/datasources/interfaces/IMapaPidDelayShape.js +2 -0
- package/dist/schema-definitions/jis/datasources/interfaces/IMapaPidDelayShape.js.map +1 -0
- package/dist/schema-definitions/jis/datasources/interfaces/index.d.ts +1 -0
- package/dist/schema-definitions/jis/datasources/interfaces/index.js +1 -0
- package/dist/schema-definitions/jis/datasources/interfaces/index.js.map +1 -1
- package/dist/schema-definitions/jis/models/JISDelayedSegmentsModel.d.ts +24 -0
- package/dist/schema-definitions/jis/models/JISDelayedSegmentsModel.js +138 -0
- package/dist/schema-definitions/jis/models/JISDelayedSegmentsModel.js.map +1 -0
- package/dist/schema-definitions/jis/models/interfaces/IJISDelayedSegment.d.ts +44 -0
- package/dist/schema-definitions/jis/models/interfaces/IJISDelayedSegment.js +2 -0
- package/dist/schema-definitions/jis/models/interfaces/IJISDelayedSegment.js.map +1 -0
- package/dist/schema-definitions/jis/models/interfaces/index.d.ts +1 -0
- package/dist/schema-definitions/jis/models/interfaces/index.js +1 -0
- package/dist/schema-definitions/jis/models/interfaces/index.js.map +1 -1
- package/docs/assets/pid_jis_erd.png +0 -0
- package/docs/asyncapi.yaml +15 -0
- package/docs/implementation_documentation.md +56 -0
- package/docs/index.md +1 -0
- package/docs/jis/delayed-segments.md +241 -0
- package/docs/jis/index.md +9 -0
- package/docs/openapi-output.yaml +176 -0
- package/package.json +1 -1
package/docs/openapi-output.yaml
CHANGED
|
@@ -2346,6 +2346,63 @@ paths:
|
|
|
2346
2346
|
$ref: "#/components/responses/BadRequestError"
|
|
2347
2347
|
401:
|
|
2348
2348
|
$ref: "#/components/responses/UnauthorizedError"
|
|
2349
|
+
/v1/jis/delayed-segments:
|
|
2350
|
+
get:
|
|
2351
|
+
tags:
|
|
2352
|
+
- ⚠ JIS (v1) - internal
|
|
2353
|
+
summary: Get all currently detected delayed segments
|
|
2354
|
+
description: |
|
|
2355
|
+
Returns segments of the network with a significant delay, detected by Mapa PID and enriched with GTFS data:
|
|
2356
|
+
stops of the segment, affected routes and nearby stops with info panels. Refreshed every 5 minutes.
|
|
2357
|
+
|
|
2358
|
+
A segment is a directed corridor of stops. Its `id` is derived from its endpoints; as segments may grow or shrink
|
|
2359
|
+
between refreshes, consumers should match segments by their stops rather than by `id`.
|
|
2360
|
+
|
|
2361
|
+
If fetching the segments fails, the last known segments are kept and their `last_detected_at` stops advancing,
|
|
2362
|
+
so consumers should judge freshness by `last_detected_at`. This does not cover the detection itself stalling:
|
|
2363
|
+
the source provides no time of its calculation, so a stalled detection keeps being fetched and
|
|
2364
|
+
`last_detected_at` keeps advancing.
|
|
2365
|
+
|
|
2366
|
+
Only segments with a delay of at least 5 minutes and info panel stops at most 5 stops from the segment are
|
|
2367
|
+
detected; the query parameters can only narrow them down further.
|
|
2368
|
+
parameters:
|
|
2369
|
+
- name: minDelaySeconds
|
|
2370
|
+
in: query
|
|
2371
|
+
required: false
|
|
2372
|
+
schema:
|
|
2373
|
+
type: integer
|
|
2374
|
+
minimum: 0
|
|
2375
|
+
example: 600
|
|
2376
|
+
description: Minimum `expected_delay_seconds` of the returned segments.
|
|
2377
|
+
- name: minDistanceStops
|
|
2378
|
+
in: query
|
|
2379
|
+
required: false
|
|
2380
|
+
schema:
|
|
2381
|
+
type: integer
|
|
2382
|
+
example: -2
|
|
2383
|
+
description: |
|
|
2384
|
+
Minimum `distance_stops` of info panel stop routes. Routes outside the range given by `minDistanceStops`
|
|
2385
|
+
and `maxDistanceStops` are left out, and so are info panel stops left without a route.
|
|
2386
|
+
- name: maxDistanceStops
|
|
2387
|
+
in: query
|
|
2388
|
+
required: false
|
|
2389
|
+
schema:
|
|
2390
|
+
type: integer
|
|
2391
|
+
example: 2
|
|
2392
|
+
description: Maximum `distance_stops` of info panel stop routes, see `minDistanceStops`.
|
|
2393
|
+
responses:
|
|
2394
|
+
200:
|
|
2395
|
+
description: OK
|
|
2396
|
+
content:
|
|
2397
|
+
application/json:
|
|
2398
|
+
schema:
|
|
2399
|
+
type: array
|
|
2400
|
+
items:
|
|
2401
|
+
$ref: "#/components/schemas/JISDelayedSegment"
|
|
2402
|
+
400:
|
|
2403
|
+
$ref: "#/components/responses/BadRequestError"
|
|
2404
|
+
401:
|
|
2405
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
2349
2406
|
|
|
2350
2407
|
|
|
2351
2408
|
components:
|
|
@@ -4897,3 +4954,122 @@ components:
|
|
|
4897
4954
|
format: date-time
|
|
4898
4955
|
example: "2024-02-29T12:22:20.958Z"
|
|
4899
4956
|
description: Timestamp from when the event was created in VYMI
|
|
4957
|
+
JISDelayedSegmentStop:
|
|
4958
|
+
type: object
|
|
4959
|
+
required:
|
|
4960
|
+
- id
|
|
4961
|
+
- name
|
|
4962
|
+
properties:
|
|
4963
|
+
id:
|
|
4964
|
+
type: string
|
|
4965
|
+
example: U1234Z1P
|
|
4966
|
+
description: GTFS stop id
|
|
4967
|
+
name:
|
|
4968
|
+
type: string
|
|
4969
|
+
example: Vozovna Střešovice
|
|
4970
|
+
JISDelayedSegment:
|
|
4971
|
+
type: object
|
|
4972
|
+
required:
|
|
4973
|
+
- id
|
|
4974
|
+
- from_stop
|
|
4975
|
+
- to_stop
|
|
4976
|
+
- expected_delay_seconds
|
|
4977
|
+
- first_detected_at
|
|
4978
|
+
- last_detected_at
|
|
4979
|
+
- stops
|
|
4980
|
+
- routes
|
|
4981
|
+
- info_panel_stops
|
|
4982
|
+
properties:
|
|
4983
|
+
id:
|
|
4984
|
+
type: string
|
|
4985
|
+
example: 1234/1-5678/2
|
|
4986
|
+
description: Identifier of the segment derived from its endpoints
|
|
4987
|
+
from_stop:
|
|
4988
|
+
$ref: "#/components/schemas/JISDelayedSegmentStop"
|
|
4989
|
+
to_stop:
|
|
4990
|
+
$ref: "#/components/schemas/JISDelayedSegmentStop"
|
|
4991
|
+
expected_delay_seconds:
|
|
4992
|
+
type: integer
|
|
4993
|
+
example: 900
|
|
4994
|
+
description: Expected additional delay of a vehicle passing the whole segment
|
|
4995
|
+
first_detected_at:
|
|
4996
|
+
type: string
|
|
4997
|
+
format: date-time
|
|
4998
|
+
example: "2026-10-27T08:50:00.000Z"
|
|
4999
|
+
description: |
|
|
5000
|
+
Start of the current continuous detection of the segment; resets when the segment is missing from a successful
|
|
5001
|
+
refresh or its `id` changes
|
|
5002
|
+
last_detected_at:
|
|
5003
|
+
type: string
|
|
5004
|
+
format: date-time
|
|
5005
|
+
example: "2026-10-27T09:00:00.000Z"
|
|
5006
|
+
description: Time of the last detection of the segment
|
|
5007
|
+
stops:
|
|
5008
|
+
type: array
|
|
5009
|
+
description: |
|
|
5010
|
+
Stops of the segment, including its endpoints, ordered along the segment. A stop with several GTFS stop ids
|
|
5011
|
+
(variants) is represented by the alphabetically first of them, so its id stays the same between refreshes
|
|
5012
|
+
unless the GTFS stops change.
|
|
5013
|
+
items:
|
|
5014
|
+
$ref: "#/components/schemas/JISDelayedSegmentStop"
|
|
5015
|
+
routes:
|
|
5016
|
+
type: array
|
|
5017
|
+
description: |
|
|
5018
|
+
Routes with a regular trip travelling at least one hop of the segment within the configured time window
|
|
5019
|
+
(default 2 hours) before or after the detection
|
|
5020
|
+
items:
|
|
5021
|
+
type: object
|
|
5022
|
+
required:
|
|
5023
|
+
- id
|
|
5024
|
+
- short_name
|
|
5025
|
+
- type
|
|
5026
|
+
properties:
|
|
5027
|
+
id:
|
|
5028
|
+
type: string
|
|
5029
|
+
example: L119
|
|
5030
|
+
description: GTFS route id
|
|
5031
|
+
short_name:
|
|
5032
|
+
type: string
|
|
5033
|
+
example: "119"
|
|
5034
|
+
type:
|
|
5035
|
+
type: integer
|
|
5036
|
+
example: 3
|
|
5037
|
+
description: GTFS route type
|
|
5038
|
+
info_panel_stops:
|
|
5039
|
+
type: array
|
|
5040
|
+
description: |
|
|
5041
|
+
Stops with an info panel (departure preset) in or near the segment along the affected routes. The stop id
|
|
5042
|
+
is the variant the preset is assigned to, so it may differ from the id of the same stop in `stops`; a stop
|
|
5043
|
+
inside the segment is recognized by `distance_stops` 0.
|
|
5044
|
+
items:
|
|
5045
|
+
type: object
|
|
5046
|
+
required:
|
|
5047
|
+
- stop
|
|
5048
|
+
- preset_route_names
|
|
5049
|
+
- routes
|
|
5050
|
+
properties:
|
|
5051
|
+
stop:
|
|
5052
|
+
$ref: "#/components/schemas/JISDelayedSegmentStop"
|
|
5053
|
+
preset_route_names:
|
|
5054
|
+
type: array
|
|
5055
|
+
description: Route names of the departure presets assigned to the stop
|
|
5056
|
+
items:
|
|
5057
|
+
type: string
|
|
5058
|
+
example: bustec-vozovna_strasovice-876_2
|
|
5059
|
+
routes:
|
|
5060
|
+
type: array
|
|
5061
|
+
description: Affected routes passing the stop
|
|
5062
|
+
items:
|
|
5063
|
+
type: object
|
|
5064
|
+
required:
|
|
5065
|
+
- id
|
|
5066
|
+
- distance_stops
|
|
5067
|
+
properties:
|
|
5068
|
+
id:
|
|
5069
|
+
type: string
|
|
5070
|
+
example: L119
|
|
5071
|
+
description: GTFS route id
|
|
5072
|
+
distance_stops:
|
|
5073
|
+
type: integer
|
|
5074
|
+
example: -2
|
|
5075
|
+
description: Distance of the stop from the segment in stops along the route (negative before the segment, 0 inside, positive after it)
|