@golemio/pid 5.9.1-dev.2457825323 → 5.9.1-dev.2470905594
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/dist/integration-engine/ropid-gtfs/data-access/cache/GtfsTripStopsCacheRepository.d.ts +10 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/GtfsTripStopsCacheRepository.js +79 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/GtfsTripStopsCacheRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.d.ts +4 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +28 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +4 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +2 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +2 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/EnsureCacheTask.js +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/EnsureCacheTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsTripStopsCacheTask.d.ts +13 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsTripStopsCacheTask.js +48 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsTripStopsCacheTask.js.map +1 -0
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js +4 -15
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js.map +1 -1
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.d.ts +23 -3
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.js +227 -43
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.js.map +1 -1
- package/dist/output-gateway/pid/ioc/Di.js +2 -0
- package/dist/output-gateway/pid/ioc/Di.js.map +1 -1
- package/dist/output-gateway/pid/ioc/OgPidToken.d.ts +1 -0
- package/dist/output-gateway/pid/ioc/OgPidToken.js +1 -0
- package/dist/output-gateway/pid/ioc/OgPidToken.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/InfotextFacade.d.ts +1 -1
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js +3 -3
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/TransferFacade.d.ts +4 -2
- package/dist/output-gateway/pid/service/facade/TransferFacade.js +25 -34
- package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsTripStopsRepository.d.ts +9 -0
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsTripStopsRepository.js +56 -0
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsTripStopsRepository.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js +2 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IGtfsTripStopsCacheDto.d.ts +3 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IGtfsTripStopsCacheDto.js +3 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IGtfsTripStopsCacheDto.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/GtfsTripStopsCacheDtoSchema.d.ts +4 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/GtfsTripStopsCacheDtoSchema.js +22 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/GtfsTripStopsCacheDtoSchema.js.map +1 -0
- package/docs/asyncapi.yaml +15 -0
- package/docs/cache/types/redis.md +16 -3
- package/docs/implementation_documentation.md +4 -2
- package/docs/processing/transferboards_filtering.md +5 -4
- package/package.json +8 -8
|
@@ -28,6 +28,7 @@ const DepartureSkip_1 = require("../../helpers/enums/DepartureSkip");
|
|
|
28
28
|
const TransferBoardFilter_1 = require("../../helpers/TransferBoardFilter");
|
|
29
29
|
const OgPidToken_1 = require("../../ioc/OgPidToken");
|
|
30
30
|
const PIDDepartureModel_1 = __importDefault(require("../../models/helpers/PIDDepartureModel"));
|
|
31
|
+
const GtfsTripStopsRepository_1 = require("../../../ropid-gtfs/data-access/redis/GtfsTripStopsRepository");
|
|
31
32
|
const DelayComputationRepository_1 = require("../../../public/data-access/redis/DelayComputationRepository");
|
|
32
33
|
const PublicGtfsDepartureRepository_1 = require("../../../public/data-access/redis/PublicGtfsDepartureRepository");
|
|
33
34
|
const PublicStopTimeRepository_1 = require("../../../public/data-access/redis/PublicStopTimeRepository");
|
|
@@ -41,7 +42,7 @@ const const_1 = require("../../../../const");
|
|
|
41
42
|
const TransferDepartureTransformation_1 = require("../transformations/TransferDepartureTransformation");
|
|
42
43
|
const DUMMY_EMPTY_STRING_FOR_FILTERING = "";
|
|
43
44
|
let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
44
|
-
constructor(log, publicDepartureRepository, departuresRepository, departureTransformation, tripRepository, stopTimeRepository, delayComputationRepository) {
|
|
45
|
+
constructor(log, publicDepartureRepository, departuresRepository, departureTransformation, tripRepository, stopTimeRepository, delayComputationRepository, gtfsTripStopsRepository) {
|
|
45
46
|
this.log = log;
|
|
46
47
|
this.publicDepartureRepository = publicDepartureRepository;
|
|
47
48
|
this.departuresRepository = departuresRepository;
|
|
@@ -49,6 +50,7 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
|
49
50
|
this.tripRepository = tripRepository;
|
|
50
51
|
this.stopTimeRepository = stopTimeRepository;
|
|
51
52
|
this.delayComputationRepository = delayComputationRepository;
|
|
53
|
+
this.gtfsTripStopsRepository = gtfsTripStopsRepository;
|
|
52
54
|
}
|
|
53
55
|
async getTransferDepartures(stopIds, tripNumber, currentMoment, minutesOffset, timeZone = shared_1.RopidRouterUtils.TIMEZONE) {
|
|
54
56
|
let departureEntities = [];
|
|
@@ -112,11 +114,12 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
|
112
114
|
};
|
|
113
115
|
}), currentStopId, stopIds, null, shouldKeepDeparturesWithPossiblyGuaranteedTransfer).map((d) => d.departure);
|
|
114
116
|
}
|
|
117
|
+
// platform_code not available in gtfsTripStopsCache and not used by line-direction filters
|
|
115
118
|
static jsonPathDataToLineFilterStop(stopInfo) {
|
|
116
119
|
return {
|
|
117
120
|
stop_id: GtfsStopParser_1.GtfsStopParser.normalizedNodeId(stopInfo[0]),
|
|
118
121
|
stop_name: stopInfo[1],
|
|
119
|
-
platform_code:
|
|
122
|
+
platform_code: DUMMY_EMPTY_STRING_FOR_FILTERING,
|
|
120
123
|
};
|
|
121
124
|
}
|
|
122
125
|
calculateTimeFrom(currentArrival, currentPosition, delayedTimeFrom, plannedTimeFrom) {
|
|
@@ -310,13 +313,7 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
|
310
313
|
static isOtherEndNearCurrent(otherStops, currentStop) {
|
|
311
314
|
const next = otherStops[0];
|
|
312
315
|
const last = otherStops[otherStops.length - 1];
|
|
313
|
-
|
|
314
|
-
return false;
|
|
315
|
-
}
|
|
316
|
-
if (next.stop_id === currentStop.stop_id) {
|
|
317
|
-
return true;
|
|
318
|
-
}
|
|
319
|
-
return false;
|
|
316
|
+
return next.stop_id === last.stop_id && next.stop_id === currentStop.stop_id;
|
|
320
317
|
}
|
|
321
318
|
static isOtherSubsetOfCurrent(otherStops, currentStops) {
|
|
322
319
|
let oIndex = 0, oLen = otherStops.length, cLen = currentStops.length;
|
|
@@ -390,7 +387,8 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
|
390
387
|
const previousCountMax = params.options.previousCountMax;
|
|
391
388
|
if (!params.data.otherLinesMap.size)
|
|
392
389
|
return params;
|
|
393
|
-
|
|
390
|
+
// Cap at currentStopIndex — can't look back more stops than exist before current position
|
|
391
|
+
const previousCount = Math.min(previousCountMax, currentLine.currentStopIndex);
|
|
394
392
|
// Get previous N stops before currentStop, most recent first
|
|
395
393
|
const currentLinePastStops = currentLine.stops
|
|
396
394
|
.slice(0, currentLine.currentStopIndex) // all stops before current
|
|
@@ -419,7 +417,7 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
|
419
417
|
static async applyFiltersSequentially(params, filters) {
|
|
420
418
|
return filters.reduce((promiseChain, filterFn) => promiseChain.then(filterFn), Promise.resolve(params));
|
|
421
419
|
}
|
|
422
|
-
static rawTripLinesEntriesToTransfersMap(currentStopInput, currentTripId,
|
|
420
|
+
static rawTripLinesEntriesToTransfersMap(currentStopInput, currentTripId, rawLinesMap) {
|
|
423
421
|
const otherLinesMap = new Map();
|
|
424
422
|
// apply same transformations as later on the other trips, so we have same format of stop_id / stop_name
|
|
425
423
|
const currentStop = TransferFacade_1.jsonPathDataToLineFilterStop([
|
|
@@ -427,18 +425,12 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
|
427
425
|
currentStopInput.stop_name,
|
|
428
426
|
currentStopInput.platform_code,
|
|
429
427
|
]);
|
|
430
|
-
for (const [tripId, rawLine] of
|
|
428
|
+
for (const [tripId, rawLine] of rawLinesMap.entries()) {
|
|
431
429
|
if (!rawLine?.length) {
|
|
432
430
|
continue;
|
|
433
431
|
}
|
|
432
|
+
const stops = rawLine.map(TransferFacade_1.jsonPathDataToLineFilterStop);
|
|
434
433
|
let index = null;
|
|
435
|
-
let stops = [];
|
|
436
|
-
if (tripId === currentTripId || rawTripIds.has(tripId)) {
|
|
437
|
-
stops = rawLine.map(TransferFacade_1.jsonPathDataToLineFilterStop);
|
|
438
|
-
}
|
|
439
|
-
else {
|
|
440
|
-
stops = rawLine.map((s) => TransferFacade_1.jsonPathDataToLineFilterStop([s.stop_id, s.stop_name]));
|
|
441
|
-
}
|
|
442
434
|
if (tripId === currentTripId) {
|
|
443
435
|
index = rawLine.findIndex((rawStop) => {
|
|
444
436
|
return rawStop[0] === currentStopInput.stop_id; // gtfs stop id format
|
|
@@ -452,23 +444,20 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
|
452
444
|
}
|
|
453
445
|
return otherLinesMap;
|
|
454
446
|
}
|
|
455
|
-
async findRelevantTripIdsFromLines(
|
|
456
|
-
if (!
|
|
447
|
+
async findRelevantTripIdsFromLines(tripIds, currentStopInput, currentTripId, previousCountMax = 1, isOppositeDirectionFilterStopNameStrict = true) {
|
|
448
|
+
if (!tripIds.size) {
|
|
457
449
|
return [];
|
|
458
450
|
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
const
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
]);
|
|
468
|
-
if (!rawLinesMap || !tripsToStopTimes) {
|
|
469
|
-
throw new golemio_errors_1.GeneralError("Failed to find lines and stops for transfer trips", this.constructor.name, "Failed to read stop_id and stop_name properties", 500);
|
|
451
|
+
const allTripIds = new Set(tripIds);
|
|
452
|
+
allTripIds.add(currentTripId);
|
|
453
|
+
const gtfsTripStopsMap = await this.gtfsTripStopsRepository.getMultipleTripStops([...allTripIds]);
|
|
454
|
+
const rawLinesMap = new Map();
|
|
455
|
+
for (const [tripId, dto] of gtfsTripStopsMap.entries()) {
|
|
456
|
+
if (dto?.stops?.length) {
|
|
457
|
+
rawLinesMap.set(tripId, dto.stops);
|
|
458
|
+
}
|
|
470
459
|
}
|
|
471
|
-
const otherLinesMap = TransferFacade_1.rawTripLinesEntriesToTransfersMap(currentStopInput, currentTripId,
|
|
460
|
+
const otherLinesMap = TransferFacade_1.rawTripLinesEntriesToTransfersMap(currentStopInput, currentTripId, rawLinesMap);
|
|
472
461
|
const currentLine = otherLinesMap.get(currentTripId) || null;
|
|
473
462
|
if (!currentLine?.stops.length) {
|
|
474
463
|
throw new golemio_errors_1.GeneralError(`Cannot find data in delay cache for current trip '${currentTripId}'`, this.constructor.name);
|
|
@@ -530,11 +519,13 @@ exports.TransferFacade = TransferFacade = TransferFacade_1 = __decorate([
|
|
|
530
519
|
__param(4, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicVehiclePositionsRepository)),
|
|
531
520
|
__param(5, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicStopTimeRepository)),
|
|
532
521
|
__param(6, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.DelayComputationRepository)),
|
|
522
|
+
__param(7, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.GtfsTripStopsRepository)),
|
|
533
523
|
__metadata("design:paramtypes", [Object, PublicGtfsDepartureRepository_1.PublicGtfsDepartureRepository,
|
|
534
524
|
data_access_1.DeparturesRepository,
|
|
535
525
|
TransferDepartureTransformation_1.TransferDepartureTransformation,
|
|
536
526
|
PublicVehiclePositionsRepository_1.PublicVehiclePositionsRepository,
|
|
537
527
|
PublicStopTimeRepository_1.PublicStopTimeRepository,
|
|
538
|
-
DelayComputationRepository_1.DelayComputationRepository
|
|
528
|
+
DelayComputationRepository_1.DelayComputationRepository,
|
|
529
|
+
GtfsTripStopsRepository_1.GtfsTripStopsRepository])
|
|
539
530
|
], TransferFacade);
|
|
540
531
|
//# sourceMappingURL=TransferFacade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/TransferFacade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TransferFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/TransferFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,qEAAuD;AACvD,uEAAyD;AAEzD,uEAA4D;AAC5D,mDAA2D;AAC3D,yEAAwE;AACxE,qEAAoE;AACpE,uEAAsE;AACtE,qEAAoE;AACpE,2EAA0E;AAQ1E,qDAAoD;AAEpD,+FAA0E;AAC1E,2GAAmG;AACnG,6GAAqG;AACrG,mHAA2G;AAC3G,yGAAiG;AACjG,yHAAiH;AACjH,4CAA8C;AAM9C,wEAAqE;AACrE,8DAAgE;AAChE,6EAA8F;AAE9F,iEAAwE;AACxE,6CAA8C;AAC9C,wGAAqG;AAuBrG,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAGrC,IAAM,cAAc,sBAApB,MAAM,cAAc;IAQvB,YACsC,GAAY,EACY,yBAAwD,EACjE,oBAA0C,EAC/B,uBAAwD,EACvD,cAAgD,EACxD,kBAA4C,EAC1C,0BAAsD,EACzD,uBAAgD;QAPlE,QAAG,GAAH,GAAG,CAAS;QACY,8BAAyB,GAAzB,yBAAyB,CAA+B;QACjE,yBAAoB,GAApB,oBAAoB,CAAsB;QAC/B,4BAAuB,GAAvB,uBAAuB,CAAiC;QACvD,mBAAc,GAAd,cAAc,CAAkC;QACxD,uBAAkB,GAAlB,kBAAkB,CAA0B;QAC1C,+BAA0B,GAA1B,0BAA0B,CAA4B;QACzD,4BAAuB,GAAvB,uBAAuB,CAAyB;IACrG,CAAC;IAEG,KAAK,CAAC,qBAAqB,CAC9B,OAAiB,EACjB,UAAyB,EACzB,aAAqB,EACrB,aAAqB,EACrB,QAAQ,GAAG,yBAAgB,CAAC,QAAQ;QAEpC,IAAI,iBAAiB,GAAyB,EAAE,CAAC;QACjD,IAAI,CAAC;YACD,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC;gBACtE,QAAQ,EAAE,OAAO;gBACjB,aAAa;gBACb,aAAa;aAChB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,MAAM,IAAI,6BAAY,CAAC,wCAAwC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,kBAAkB,GAAyB,EAAE,CAAC;QAClD,IAAI,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,2BAAkB,CAAC,iBAAiB,EAAE;gBAClE,GAAG,IAAI,CAAC,cAAc;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,UAAU;aACb,CAAC,CAAC,yBAAyB,EAAE,CAAC;YAE/B,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,MAAM,IAAI,6BAAY,CAAC,uCAAuC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvG,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,CAA+B,EAAE,CAA+B;QAC/F,IAAI,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAC9C,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,eAAe,CAC1B,SAAuC,EACvC,cAA4C;QAE5C,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC,CAAC,6CAA6C;QAC/D,CAAC;QAED,MAAM,UAAU,GACZ,SAAS,CAAC,gBAAgB,KAAK,cAAc,CAAC,gBAAgB,IAAI,SAAS,CAAC,UAAU,KAAK,cAAc,CAAC,UAAU,CAAC;QACzH,IAAI,UAAU,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI,IAAI,SAAS,CAAC,YAAY,KAAK,cAAc,CAAC,YAAY,EAAE,CAAC;YACzG,OAAO,KAAK,CAAC,CAAC,0DAA0D;QAC5E,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAC3B,UAA0C,EAC1C,aAAqB,EACrB,OAAiB;QAEjB,MAAM,kDAAkD,GAAG,IAAI,CAAC;QAChE,OAAO,yCAAmB,CAAC,oBAAoB,CAC3C,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACzB,OAAO;gBACH,SAAS;aAC8C,CAAC;QAChE,CAAC,CAAC,EACF,aAAa,EACb,OAAO,EACP,IAAI,EACJ,kDAAkD,CACrD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAmC,CAAC;IAChE,CAAC;IAED,2FAA2F;IACnF,MAAM,CAAC,4BAA4B,CAAC,QAAkB;QAC1D,OAAO;YACH,OAAO,EAAE,+BAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrD,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtB,aAAa,EAAE,gCAAgC;SACzC,CAAC;IACf,CAAC;IAEO,iBAAiB,CACrB,cAAqD,EACrD,eAAmC,EACnC,eAAqB,EACrB,eAAqB;QAErB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,gBAA0B,CAAC,CAAC;QACxE,qEAAqE;QACrE,+DAA+D;QAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;QACxE,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC;QAClE,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CACzB,MAAc,EACd,OAAiB,EACjB,KAAa,EACb,SAAiB,EACjB,WAAmB,EACnB,QAAc,EACd,eAAyB;QAEzB,MAAM,IAAI,GAAG,IAAA,4BAAe,EAAC,6BAA6B,CAAC,CAAC;QAC5D,IAAI,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAgB,CAAC,CAAC;QAE9E,IAAI,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,IAAI,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnD,IAAI,cAAc,GAAiD,IAAI,CAAC;QACxE,IAAI,WAAW,GAAwB,IAAI,CAAC;QAC5C,IAAI,aAAa,GAAkB,IAAI,CAAC;QAExC,IAAI,CAAC;YACD,sBAAsB;YACtB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sCAAsC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAClG,IAAI,eAAe,EAAE,CAAC;gBAClB,wBAAwB;gBACxB,qCAAqC;gBACrC,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,eAAe,IAAI,cAAc,EAAE,CAAC;gBACpC,WAAW,GAAG;oBACV,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,aAAa,EAAE,cAAc,CAAC,aAAa,IAAI,gCAAgC;oBAC/E,UAAU,EAAE,cAAc,CAAC,UAAU;iBACxC,CAAC;gBACF,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC;gBAC7C,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACJ,8EAA8E;gBAC9E,OAAO;oBACH,SAAS,EAAE,EAAE;oBACb,eAAe;oBACf,eAAe;oBACf,WAAW;oBACX,aAAa;iBACE,CAAC;YACxB,CAAC;YAED,iFAAiF;YACjF,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjD,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,gBAAc,CAAC,YAAY,CAAC,CACpG,CAAC;YAEF,IAAI,iBAAiB,GAAmC,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACD,iDAAiD;gBACjD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC3B,gBAAc,CAAC,sBAAsB,EACrC,IAAI,CAAC,GAAG,CAAC,gBAAc,CAAC,sBAAsB,EAAE,KAAK,GAAG,EAAE,CAAC,CAC9D,CAAC;gBACF,+CAA+C;gBAC/C,yFAAyF;gBACzF,iBAAiB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,2BAA2B,CAChF,OAAO,EACP,EAAE,GAAG,gBAAc,CAAC,oBAAoB,GAAG,YAAY,EACvD,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,gBAAc,CAAC,uBAAuB,CAAC,EAC5E,cAAc,CACjB,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;oBACxC,MAAM,KAAK,CAAC;gBAChB,CAAC;gBACD,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACpG,CAAC;YAED,wDAAwD;YACxD,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CACvD,gBAAc,CAAC,eAAe,CAAC,SAAS,EAAE,cAAe,CAAC,CAC7D,CAAC;YAEF,8EAA8E;YAC9E,iBAAiB,GAAG,gBAAc,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAE7G,iBAAiB,CAAC,IAAI,CAAC,gBAAc,CAAC,mBAAmB,CAAC,CAAC;YAE3D,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAE7F,qEAAqE;YACrE,MAAM,eAAe,GAAG,KAAK,CAAC;YAE9B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,sCAAsC,CACpF,uBAAuB,EACvB,eAAe,CAClB,CAAC;YAEF,IAAI,SAAS,GAA6B,EAAE,CAAC;YAE7C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,2CAA2C,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;YAElH,SAAS,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;YAElC,OAAO;gBACH,SAAS;gBACT,eAAe;gBACf,eAAe;gBACf,WAAW;gBACX,aAAa;aAChB,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,MAAM,IAAI,6BAAY,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3F,CAAC;gBAAS,CAAC;YACP,IAAI,EAAE,GAAG,EAAE,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAC/B,SAAc,EACd,OAAiB;QAEjB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAW,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;IACvF,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,sCAAsC,CAChD,WAAmB,EACnB,SAAiB;QAEjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,WAAW,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;QAC7G,IAAI,CAAC,QAAQ,IAAI,WAAW,KAAK,kCAAiB,CAAC,GAAG,EAAE,CAAC;YACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,oDAAoD,SAAS,EAAE,CAAC,CAAC;YACvG,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,WAAW,kCAAiB,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;QACxH,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC5B,eAAmC,EACnC,OAAiB,EACjB,MAAc;QAEd,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,gCAAgC,CACrF,eAAe,CAAC,YAAY,EAC5B,YAAY,CACf,CAAuC,CAAC;QAEzC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,uEAAuE;QACvE,8CAA8C;QAC9C,IAAI,iBAAiB,GAAG,gBAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5F,uEAAuE;QACvE,iBAAiB,KAAK,gBAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEzF,IAAI,iBAAiB,EAAE,CAAC;YACpB,MAAM,WAAW,GAAS,6BAAa,CAAC,4BAA4B,CAChE,iBAAiB,CAAC,oBAAoB,EACtC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CACjD,CAAC;YACF,MAAM,aAAa,GAAS,6BAAa,CAAC,4BAA4B,CAClE,iBAAiB,CAAC,sBAAsB,EACxC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CACjD,CAAC;YAEF,OAAO;gBACH,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS;gBAC3C,OAAO,EAAE,iBAAiB,CAAC,OAAO;gBAClC,kBAAkB,EAAE,aAAa,CAAC,WAAW,EAAE;gBAC/C,gBAAgB,EAAE,WAAW,CAAC,WAAW,EAAE;gBAC3C,gBAAgB,EAAE,eAAe,CAAC,qBAAqB;gBACvD,UAAU,EAAE,eAAe,CAAC,UAAU;gBACtC,OAAO,EAAE,eAAe,CAAC,YAAY;gBACrC,aAAa,EAAE,iBAAiB,CAAC,aAAa;gBAC9C,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,iBAAiB,CAAC,UAAU;gBACxC,YAAY,EAAE,eAAe,CAAC,aAAa,CAAC,YAAY;aAClB,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,2CAA2C,CACrD,UAA0C,EAC1C,eAAkD;QAElD,MAAM,WAAW,GAA6B,EAAE,CAAC;QACjD,MAAM,mBAAmB,GAAe,EAAE,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwC,CAAC;QAExE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,0DAA0D;YAC1D,MAAM,SAAS,GAAyB,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC;oBACb,SAAS;oBACT,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YAED,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,yBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpG,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,kCAAiB,CAAC,KAAK,EAAE,CAAC;oBACtF,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAClD,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC9D,SAAS;gBACb,CAAC;gBAED,gFAAgF;gBAChF,WAAW,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,eAAe;oBAC1B,QAAQ,EAAE,GAAG,EAAE,sBAAsB;oBACrC,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,sBAAsB,GAA2C,CAAC,mBAAmB,CAAC,MAAM;YAC9F,CAAC,CAAC,IAAI,GAAG,EAAE;YACX,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;QAErF,KAAK,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACjF,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,CAAC;YAEjD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE1F,WAAW,CAAC,IAAI,CAAC;gBACb,SAAS;gBACT,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAC1B,QAAQ,EAAE,QAAQ,IAAI,IAAI;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,IAAmB;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,UAAmB,EAAE,WAAkB;QACxE,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,CAAC;IACjF,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,UAAmB,EAAE,YAAqB;QAC5E,IAAI,MAAM,GAAG,CAAC,EACV,IAAI,GAAG,UAAU,CAAC,MAAM,EACxB,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/B,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YACd,6CAA6C;YAC7C,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC9D,MAAM,EAAE,CAAC;gBACT,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAClB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,YAAmB,EAAE,gBAAyB,EAAE,OAA8B;QAC7G,OAAO,CACH,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC3B,YAAY,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO;YACpD,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CACtH,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,MAAqB;QACrE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QAEnD,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QACrF,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,gBAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAElE,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,iDAAiD;gBACjD,SAAS;YACb,CAAC;YAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBAC3B,2CAA2C;gBAC3C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzC,SAAS;YACb,CAAC;YAED,sFAAsF;YACtF,IAAI,gBAAc,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClF,oDAAoD;gBACpD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzC,SAAS;YACb,CAAC;YAED,6FAA6F;YAC7F,MAAM,mBAAmB,GAAG,gBAAc,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/G,IAAI,mBAAmB,EAAE,CAAC;gBACtB,0EAA0E;gBAC1E,SAAS;YACb,CAAC;YAED,8EAA8E;YAC9E,MAAM,uBAAuB,GAAG,gBAAc,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;YAC5G,IAAI,uBAAuB,EAAE,CAAC;gBAC1B,+DAA+D;gBAC/D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzC,SAAS;YACb,CAAC;YAED,6EAA6E;YAC7E,MAAM,iCAAiC,GAAG,gBAAgB,CAAC,IAAI,CAC3D,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CACzD,CAAC;YACF,IAAI,iCAAiC,EAAE,CAAC;gBACpC,qCAAqC;gBACrC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,MAAqB;QAC7E,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,gBAAgB,GAAW,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAEjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QAEnD,0FAA0F;QAC1F,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAE/E,6DAA6D;QAC7D,MAAM,oBAAoB,GAAG,WAAW,CAAC,KAAK;aACzC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,2BAA2B;aAClE,OAAO,EAAE;aACT,KAAK,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,qEAAqE;QAEvG,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,SAAS;YACb,CAAC;YAED,MAAM,cAAc,GAAG,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAEtD,yDAAyD;YACzD,MAAM,uBAAuB,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;YAE1G,qHAAqH;YACrH,4EAA4E;YAC5E,MAAM,qBAAqB,GAAG,gBAAc,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;YACnH,IAAI,qBAAqB,EAAE,CAAC;gBACxB,+DAA+D;gBAC/D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvC,SAAS;YACb,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAqB,EAAE,OAAuB;QACxF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEO,MAAM,CAAC,iCAAiC,CAC5C,gBAAuB,EACvB,aAAqB,EACrB,WAAoC;QAEpC,MAAM,aAAa,GAAqB,IAAI,GAAG,EAAE,CAAC;QAElD,wGAAwG;QACxG,MAAM,WAAW,GAAU,gBAAc,CAAC,4BAA4B,CAAC;YACnE,gBAAgB,CAAC,OAAO;YACxB,gBAAgB,CAAC,SAAS;YAC1B,gBAAgB,CAAC,aAAa;SACjC,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBACnB,SAAS;YACb,CAAC;YAED,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,gBAAc,CAAC,4BAA4B,CAAC,CAAC;YAEhF,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC3B,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAiB,EAAE,EAAE;oBAC5C,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC,sBAAsB;gBAC1E,CAAC,CAAC,CAAC;YACP,CAAC;YAED,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE;gBACtB,KAAK;gBACL,gBAAgB,EACZ,KAAK;oBACL,KAAK,CAAC,SAAS,CACX,CAAC,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,CACpG;aACR,CAAC,CAAC;QACP,CAAC;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,4BAA4B,CACrC,OAAoB,EACpB,gBAAuB,EACvB,aAAqB,EACrB,mBAA2B,CAAC,EAC5B,0CAAmD,IAAI;QAEvD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE9B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QAElG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;QAClD,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACrB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAqB,gBAAc,CAAC,iCAAiC,CACpF,gBAAgB,EAChB,aAAa,EACb,WAAW,CACd,CAAC;QAEF,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;QAC7D,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,6BAAY,CAAC,qDAAqD,aAAa,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzH,CAAC;QAED,yCAAyC;QACzC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEpC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAmB;YAC5B,gBAAc,CAAC,8BAA8B,EAAE,sDAAsD;YACrG,gBAAc,CAAC,sCAAsC,EAAE,kDAAkD;SAC5G,CAAC;QAEF,MAAM,IAAI,GAAsB;YAC5B,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;YAC5D,WAAW;YACX,aAAa;YACb,WAAW,EAAE,IAAI,GAAG,EAAE;SACzB,CAAC;QAEF,MAAM,OAAO,GAA0B;YACnC,gBAAgB;YAChB,uCAAuC;SAC1C,CAAC;QAEF,MAAM,MAAM,GAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,gBAAc,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE/E,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAY,cAAc;QACtB,OAAO;YACH,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,6BAAa,CAAC,UAAU;YAC9B,KAAK,EAAE,+BAAc,CAAC,IAAI;YAC1B,MAAM,EAAE,iCAAe,CAAC,6BAA6B;YACrD,IAAI,EAAE,CAAC,6BAAa,CAAC,QAAQ,CAAC;YAC9B,oBAAoB,EAAE,EAAE;YACxB,cAAc,EAAE,IAAI,EAAE,2BAA2B;YACjD,cAAc,EAAE,IAAI,EAAE,2BAA2B;SACpD,CAAC;IACN,CAAC;;AAzoBQ,wCAAc;AACC,qCAAsB,GAAG,EAAE,AAAL,CAAM;AAC5B,qCAAsB,GAAG,GAAG,AAAN,CAAO;AAE7B,2BAAY,GAAG,EAAE,GAAG,IAAI,AAAZ,CAAa;AACzB,mCAAoB,GAAG,EAAE,AAAL,CAAM;AAC1B,sCAAuB,GAAG,gBAAc,CAAC,oBAAoB,GAAG,gBAAc,CAAC,YAAY,AAApE,CAAqE;yBAN3G,cAAc;IAD1B,IAAA,qBAAU,GAAE;IAUJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,6BAA6B,CAAC,CAAA;IAChD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,oBAAoB,CAAC,CAAA;IACvC,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,+BAA+B,CAAC,CAAA;IAClD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,gCAAgC,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,wBAAwB,CAAC,CAAA;IAC3C,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,0BAA0B,CAAC,CAAA;IAC7C,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,uBAAuB,CAAC,CAAA;6CAN0C,6DAA6B;QAC3C,kCAAoB;QACN,iEAA+B;QACvC,mEAAgC;QACpC,mDAAwB;QACd,uDAA0B;QAChC,iDAAuB;GAhB/F,cAAc,CA0oB1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IGtfsTripStopsCacheDto } from "../../../../schema-definitions/ropid-gtfs/redis/interfaces/IGtfsTripStopsCacheDto";
|
|
2
|
+
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
3
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
4
|
+
export declare class GtfsTripStopsRepository {
|
|
5
|
+
private redisConnector;
|
|
6
|
+
private log;
|
|
7
|
+
constructor(redisConnector: IoRedisConnector, log: ILogger);
|
|
8
|
+
getMultipleTripStops(tripIds: string[]): Promise<Map<string, IGtfsTripStopsCacheDto | null>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
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.GtfsTripStopsRepository = 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 CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
19
|
+
const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
|
|
20
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
21
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
22
|
+
let GtfsTripStopsRepository = class GtfsTripStopsRepository {
|
|
23
|
+
constructor(redisConnector, log) {
|
|
24
|
+
this.redisConnector = redisConnector;
|
|
25
|
+
this.log = log;
|
|
26
|
+
}
|
|
27
|
+
async getMultipleTripStops(tripIds) {
|
|
28
|
+
const map = new Map();
|
|
29
|
+
if (!tripIds.length) {
|
|
30
|
+
return map;
|
|
31
|
+
}
|
|
32
|
+
if (!this.redisConnector.isConnected()) {
|
|
33
|
+
await this.redisConnector.connect();
|
|
34
|
+
}
|
|
35
|
+
const connection = this.redisConnector.getConnection();
|
|
36
|
+
const keys = tripIds.map((id) => `${const_1.GTFS_TRIP_STOPS_NAMESPACE_PREFIX}:${id}`);
|
|
37
|
+
try {
|
|
38
|
+
const results = await connection.mget(keys);
|
|
39
|
+
for (let i = 0; i < tripIds.length; i++) {
|
|
40
|
+
map.set(tripIds[i], results[i] ? JSON.parse(results[i]) : null);
|
|
41
|
+
}
|
|
42
|
+
return map;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
throw new golemio_errors_1.GeneralError("Cannot get multiple trip stops from cache", this.constructor.name, error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.GtfsTripStopsRepository = GtfsTripStopsRepository;
|
|
50
|
+
exports.GtfsTripStopsRepository = GtfsTripStopsRepository = __decorate([
|
|
51
|
+
(0, tsyringe_1.injectable)(),
|
|
52
|
+
__param(0, (0, tsyringe_1.inject)(ioc_1.ContainerToken.RedisConnector)),
|
|
53
|
+
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
54
|
+
__metadata("design:paramtypes", [IoRedisConnector_1.IoRedisConnector, Object])
|
|
55
|
+
], GtfsTripStopsRepository);
|
|
56
|
+
//# sourceMappingURL=GtfsTripStopsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GtfsTripStopsRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/ropid-gtfs/data-access/redis/GtfsTripStopsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iFAA+E;AAE/E,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAChC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,oBAAoB,CAAC,OAAiB;QAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC;QACf,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,wCAAgC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,GAAG,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,2CAA2C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtG,CAAC;IACL,CAAC;CACJ,CAAA;AA/BY,0DAAuB;kCAAvB,uBAAuB;IADnC,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,uBAAuB,CA+BnC"}
|
|
@@ -2,4 +2,5 @@ export declare const GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = "gtfsRunSchedule";
|
|
|
2
2
|
export declare const PUBLIC_DEPARTURE_NAMESPACE_PREFIX = "gtfsPublicDepartureCache";
|
|
3
3
|
export declare const GTFS_STOPS_NAMESPACE_PREFIX = "gtfsStopsCache";
|
|
4
4
|
export declare const CONFIG_NAMESPACE_PREFIX = "config";
|
|
5
|
+
export declare const GTFS_TRIP_STOPS_NAMESPACE_PREFIX = "gtfsTripStopsCache";
|
|
5
6
|
export declare const NOT_PUBLIC_VEHICLES_KEY = "notPublicVehicles";
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NOT_PUBLIC_VEHICLES_KEY = exports.CONFIG_NAMESPACE_PREFIX = exports.GTFS_STOPS_NAMESPACE_PREFIX = exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = void 0;
|
|
3
|
+
exports.NOT_PUBLIC_VEHICLES_KEY = exports.GTFS_TRIP_STOPS_NAMESPACE_PREFIX = exports.CONFIG_NAMESPACE_PREFIX = exports.GTFS_STOPS_NAMESPACE_PREFIX = exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = void 0;
|
|
4
4
|
exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = "gtfsRunSchedule";
|
|
5
5
|
exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = "gtfsPublicDepartureCache";
|
|
6
6
|
exports.GTFS_STOPS_NAMESPACE_PREFIX = "gtfsStopsCache";
|
|
7
7
|
exports.CONFIG_NAMESPACE_PREFIX = "config";
|
|
8
|
+
exports.GTFS_TRIP_STOPS_NAMESPACE_PREFIX = "gtfsTripStopsCache";
|
|
8
9
|
exports.NOT_PUBLIC_VEHICLES_KEY = "notPublicVehicles";
|
|
9
10
|
//# sourceMappingURL=const.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/schema-definitions/ropid-gtfs/redis/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AACvD,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAC/D,QAAA,2BAA2B,GAAG,gBAAgB,CAAC;AAC/C,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/schema-definitions/ropid-gtfs/redis/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AACvD,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAC/D,QAAA,2BAA2B,GAAG,gBAAgB,CAAC;AAC/C,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,gCAAgC,GAAG,oBAAoB,CAAC;AACxD,QAAA,uBAAuB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IGtfsTripStopsCacheDto.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/ropid-gtfs/redis/interfaces/IGtfsTripStopsCacheDto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
|
|
2
|
+
import { IGtfsTripStopsCacheDto } from "../interfaces/IGtfsTripStopsCacheDto";
|
|
3
|
+
declare const gtfsTripStopsCacheDtoSchema: JSONSchemaType<IGtfsTripStopsCacheDto>;
|
|
4
|
+
export { gtfsTripStopsCacheDtoSchema as GtfsTripStopsCacheDtoSchema };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GtfsTripStopsCacheDtoSchema = void 0;
|
|
4
|
+
const gtfsTripStopsCacheDtoSchema = {
|
|
5
|
+
$schema: "http://json-schema.org/draft-04/schema#",
|
|
6
|
+
title: "GtfsTripStopsCacheDto",
|
|
7
|
+
type: "object",
|
|
8
|
+
properties: {
|
|
9
|
+
stops: {
|
|
10
|
+
type: "array",
|
|
11
|
+
items: {
|
|
12
|
+
type: "array",
|
|
13
|
+
items: [{ type: "string" }, { type: "string" }],
|
|
14
|
+
minItems: 2,
|
|
15
|
+
maxItems: 2,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
required: ["stops"],
|
|
20
|
+
};
|
|
21
|
+
exports.GtfsTripStopsCacheDtoSchema = gtfsTripStopsCacheDtoSchema;
|
|
22
|
+
//# sourceMappingURL=GtfsTripStopsCacheDtoSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GtfsTripStopsCacheDtoSchema.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/ropid-gtfs/redis/schemas/GtfsTripStopsCacheDtoSchema.ts"],"names":[],"mappings":";;;AAGA,MAAM,2BAA2B,GAA2C;IACxE,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,KAAK,EAAE;YACH,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC/C,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;aACd;SACJ;KACJ;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACtB,CAAC;AAEsC,kEAA2B"}
|
package/docs/asyncapi.yaml
CHANGED
|
@@ -105,6 +105,17 @@ channels:
|
|
|
105
105
|
messages:
|
|
106
106
|
empty:
|
|
107
107
|
$ref: "#/components/messages/emptyMessage"
|
|
108
|
+
ropidgtfs.refreshGtfsTripStopsCache:
|
|
109
|
+
address: vehicle-positions.ropidgtfs.refreshGtfsTripStopsCache
|
|
110
|
+
description: Refresh GtfsTripStopsCache — pre-computed trip stop sequences for transfer board line-direction filtering
|
|
111
|
+
bindings:
|
|
112
|
+
amqp:
|
|
113
|
+
is: queue
|
|
114
|
+
queue:
|
|
115
|
+
durable: true
|
|
116
|
+
messages:
|
|
117
|
+
empty:
|
|
118
|
+
$ref: "#/components/messages/emptyMessage"
|
|
108
119
|
ropidgtfs.ensureCache:
|
|
109
120
|
address: vehicle-positions.ropidgtfs.ensureCache
|
|
110
121
|
description: Triggers all cache refreshes to ensure caches are populated and up to date
|
|
@@ -378,6 +389,10 @@ operations:
|
|
|
378
389
|
action: "send"
|
|
379
390
|
channel:
|
|
380
391
|
$ref: "#/channels/ropidgtfs.refreshGtfsStopsCache"
|
|
392
|
+
ropidgtfs.refreshGtfsTripStopsCache:
|
|
393
|
+
action: "send"
|
|
394
|
+
channel:
|
|
395
|
+
$ref: "#/channels/ropidgtfs.refreshGtfsTripStopsCache"
|
|
381
396
|
updateGTFSTripId:
|
|
382
397
|
action: "send"
|
|
383
398
|
channel:
|
|
@@ -540,6 +540,17 @@ flowchart LR
|
|
|
540
540
|
task_RefreshJISInfotextsCacheTask -- "`HSET jisCache:$setId:infotexts a jisCache:$setId:stops-infotexts, EXPIRE staré sady`" --> redis_jisCache;
|
|
541
541
|
```
|
|
542
542
|
|
|
543
|
+
### gtfsTripStopsCache:*
|
|
544
|
+
|
|
545
|
+
- Klíč `gtfsTripStopsCache:*`, kde `*` je GTFS `trip_id`
|
|
546
|
+
- Hodnota je JSON string s polem zastávek seřazených podle `stop_sequence`:
|
|
547
|
+
- `stops` – pole dvojic `[stop_id, stop_name]`
|
|
548
|
+
- TTL 6 hodin (musí přesáhnout maximální dobu jízdy spoje ~3,5h + interval tasku 1h)
|
|
549
|
+
- Cache se přegeneruje jednou za hodinu (cron přes `EnsureCacheTask`) a po přenačtení GTFS jízdních řádů (přes `CheckSavedRowsAndReplaceTablesTask`)
|
|
550
|
+
- SQL dotaz vybírá všechny spoje, jejichž první zastávka (`stop_sequence = 1`) má `departure_datetime` v okně `now() − 1h` až `now() + 2h`, a pro každý takový spoj agreguje všechny zastávky
|
|
551
|
+
- Zapisuje `GtfsTripStopsCacheRepository` (IE) v dávkách po 200 klíčích přes Redis pipeline; před zápisem se validují data přes AJV schéma, nevalidní záznamy se přeskočí a zalogují
|
|
552
|
+
- Čte `GtfsTripStopsRepository` (OG) přes `MGET` — využívá `TransferFacade.findRelevantTripIdsFromLines()` pro filtrování přestupních linek
|
|
553
|
+
|
|
543
554
|
### Flowchart (v4 transferboards API)
|
|
544
555
|
|
|
545
556
|

|
|
@@ -560,7 +571,7 @@ link na .drawio [soubor](../../assets/V4Transferboards.drawio)
|
|
|
560
571
|
|
|
561
572
|
## Manuální refresh cache (EnsureCacheTask)
|
|
562
573
|
|
|
563
|
-
`EnsureCacheTask` slouží jako manuální spouštěč obnovy všech
|
|
574
|
+
`EnsureCacheTask` slouží jako manuální spouštěč obnovy všech 5 caches, jejichž data nejsou real-time obnovována. Po přijetí prázdné zprávy na frontě `vehicle-positions.ropidgtfs.ensureCache` odešle paralelně prázdné zprávy do všech 5 cílových front. Dvě z nich míří do různých workerů (cross-worker routing přes RabbitMQ exchange), tři míří do stejného workeru (TimetableWorker).
|
|
564
575
|
|
|
565
576
|
### Flowchart
|
|
566
577
|
|
|
@@ -576,12 +587,14 @@ flowchart LR
|
|
|
576
587
|
q1["`AMQP refreshGTFSTripData`"]
|
|
577
588
|
q2["`AMQP refreshPublicGtfsDepartureCache`"]
|
|
578
589
|
q3["`AMQP refreshGtfsStopsCache`"]
|
|
579
|
-
q4["`AMQP
|
|
590
|
+
q4["`AMQP refreshGtfsTripStopsCache`"]
|
|
591
|
+
q5["`AMQP refreshJISInfotextsCache`"]
|
|
580
592
|
|
|
581
593
|
trigger --> task
|
|
582
594
|
task -- cross-worker --> exchange_vp --> q1
|
|
583
595
|
task -- same-worker --> exchange_self --> q2
|
|
584
596
|
exchange_self --> q3
|
|
585
|
-
|
|
597
|
+
exchange_self --> q4
|
|
598
|
+
task -- cross-worker --> exchange_jis --> q5
|
|
586
599
|
```
|
|
587
600
|
|
|
@@ -648,6 +648,7 @@ Task slouží jako ruční spouštěč obnovení všech cache. Nespouští se au
|
|
|
648
648
|
- název: vehicle-positions.vehiclepositions.refreshGTFSTripData
|
|
649
649
|
- název: vehicle-positions.ropidgtfs.refreshPublicGtfsDepartureCache
|
|
650
650
|
- název: vehicle-positions.ropidgtfs.refreshGtfsStopsCache
|
|
651
|
+
- název: vehicle-positions.ropidgtfs.refreshGtfsTripStopsCache
|
|
651
652
|
- název: vehicle-positions.jis.refreshJISInfotextsCache
|
|
652
653
|
- datové zdroje
|
|
653
654
|
- žádné
|
|
@@ -1489,10 +1490,11 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
|
|
|
1489
1490
|
- cachováno na 5 sekund (stale-while-revalidate 5 sekund)
|
|
1490
1491
|
- zdrojové cache záznamy
|
|
1491
1492
|
- `gtfsStopsCache:*` – převod ASW node ID na GTFS stop_id
|
|
1492
|
-
- `
|
|
1493
|
+
- `gtfsTripStopsCache:*` – předpočítaný seznam zastávek spoje (`[stop_id, stop_name][]`), používáno ve filtru směru linek (`findRelevantTripIdsFromLines`)
|
|
1494
|
+
- `gtfsDelayComputation:*` – predikovaný čas příjezdu vozidla na zastávku
|
|
1493
1495
|
- `vpPublicCache:*` – aktuální poloha a zpoždění vozidla
|
|
1494
1496
|
- `gtfsPublicDepartureCache:*` – statické odjezdy ze zastávek (vč. `connections` a `wheelchair_accessible`)
|
|
1495
|
-
- `vpPublicStopTimeCache:*` – live zastávkové časy pro spoje se známou polohou
|
|
1497
|
+
- `vpPublicStopTimeCache:*` – live zastávkové časy pro spoje se známou polohou (platform_code u vlaků)
|
|
1496
1498
|
- `jisCache:*` – aktivní infotexty pro dané zastávky
|
|
1497
1499
|
- načítání odjezdů z cache (`gtfsPublicDepartureCache`)
|
|
1498
1500
|
- 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
|
|
@@ -192,12 +192,12 @@ This stage is separate from the Stage 7 pre-filter because at Stage 7 we did not
|
|
|
192
192
|
|
|
193
193
|
**Where:** `V4TransferBoardsController.ts`
|
|
194
194
|
|
|
195
|
-
Before running the
|
|
195
|
+
Before running the direction filter, the controller categorises remaining candidates:
|
|
196
196
|
|
|
197
197
|
- **Always keep:** guaranteed transfers + "keep always" types (metro, train, ferry, funicular)
|
|
198
198
|
- **Needs filtering:** everything else (bus, tram, trolleybus that are not guaranteed)
|
|
199
199
|
|
|
200
|
-
Only the "needs filtering" set is passed to `findRelevantTripIdsFromLines`. This avoids running direction analysis on trips that will be kept unconditionally.
|
|
200
|
+
Only the "needs filtering" set of trip IDs is passed to `findRelevantTripIdsFromLines`. This avoids running direction analysis on trips that will be kept unconditionally.
|
|
201
201
|
|
|
202
202
|
---
|
|
203
203
|
|
|
@@ -228,7 +228,7 @@ A four-criterion stable sort applied before the direction filter:
|
|
|
228
228
|
|
|
229
229
|
This is the most complex stage. It determines whether each candidate trip is going somewhere _new_ for the passenger, or whether it is effectively doubling back along the route the passenger just arrived on.
|
|
230
230
|
|
|
231
|
-
For
|
|
231
|
+
For all candidate trip IDs (plus the current trip), the facade loads their stop sequences from `gtfsTripStopsCache:{tripId}` via a single `MGET` call. Each cache entry contains an ordered list of `[stop_id, stop_name]` tuples representing the full route of the trip. It then applies two sequential sub-filters:
|
|
232
232
|
|
|
233
233
|
#### Sub-filter A: Forward-subset check (`filterOutForwardSubgroupOfLine`)
|
|
234
234
|
|
|
@@ -242,7 +242,7 @@ If every stop the candidate will visit is also a future stop on the current vehi
|
|
|
242
242
|
|
|
243
243
|
**Question:** Do this candidate trip's next N stops overlap with the current vehicle's previous N stops in a way that suggests it is heading back the same way?
|
|
244
244
|
|
|
245
|
-
Configured by `countPreviousStopsToAllow` (default `0`). The value defines how many of the current vehicle's previous stops the candidate trip is allowed to share in its upcoming stops. If the candidate shares more than that number, it is **dropped** (it's going backwards). `0` means no overlap is permitted at all.
|
|
245
|
+
Configured by `countPreviousStopsToAllow` (default `0`). The value defines how many of the current vehicle's previous stops the candidate trip is allowed to share in its upcoming stops. If the candidate shares more than that number, it is **dropped** (it's going backwards). `0` means no overlap is permitted at all. The actual lookback count is capped at `currentStopIndex` — cannot look back more stops than exist before the current position.
|
|
246
246
|
|
|
247
247
|
The strictness of the stop matching is controlled by `isOppositeDirectionFilterStopNameStrict` (default `true`): when true, both `stop_id` AND `stop_name` must match; when false, only `stop_id`.
|
|
248
248
|
|
|
@@ -311,6 +311,7 @@ The last stage applies three rules:
|
|
|
311
311
|
|---|---|
|
|
312
312
|
| `gtfsStopsCache:{aswId}` | ASW node → GTFS stop_id mapping |
|
|
313
313
|
| `gtfsPublicDepartureCache:{stopId}` | Sorted set of precomputed departures (score = departure Unix timestamp) |
|
|
314
|
+
| `gtfsTripStopsCache:{tripId}` | Pre-computed ordered list of stops per trip (`[stop_id, stop_name][]`), used by line-direction filter |
|
|
314
315
|
| `gtfsDelayComputation:{tripId}` | Per-trip RT stop times, delay, shapes |
|
|
315
316
|
| `vpPublicStopTimeCache:{vehicleKey}` | Per-vehicle stop time lookup (used to identify current trip) |
|
|
316
317
|
| `vpPublicCache:*` | Geo-indexed real-time vehicle positions |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/pid",
|
|
3
|
-
"version": "5.9.1-dev.
|
|
3
|
+
"version": "5.9.1-dev.2470905594",
|
|
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": ">=22.0.0",
|
|
37
37
|
"npm": ">=8.0.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
@@ -41,14 +41,14 @@
|
|
|
41
41
|
"@commitlint/cli": "^11.0.0",
|
|
42
42
|
"@commitlint/config-conventional": "^11.0.0",
|
|
43
43
|
"@golemio/cli": "1.11.2",
|
|
44
|
-
"@golemio/core": "
|
|
44
|
+
"@golemio/core": "3.0.6",
|
|
45
45
|
"@golemio/db-common": "1.2.2",
|
|
46
46
|
"@golemio/eslint-config": "1.1.3",
|
|
47
47
|
"@swc/core": "^1.15.10",
|
|
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": "^22.19.17",
|
|
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": "^11.7.5",
|
|
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": "
|
|
76
|
+
"typedoc": "0.28.19",
|
|
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.7-dev.2 || ^3.0.0"
|
|
82
82
|
},
|
|
83
83
|
"overrides": {
|
|
84
84
|
"@google-cloud/storage": {
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
|
-
"@golemio/ovapi-gtfs-realtime-bindings": "1.
|
|
92
|
+
"@golemio/ovapi-gtfs-realtime-bindings": "1.4.0",
|
|
93
93
|
"@turf/turf": "^6.5.0",
|
|
94
94
|
"cheap-ruler": "^3.0.2",
|
|
95
95
|
"csv-parser": "^3.0.0",
|