@golemio/pid 5.7.2-dev.2358133784 → 5.7.2-dev.2366197347

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 (92) hide show
  1. package/dist/const.d.ts +0 -1
  2. package/dist/const.js +1 -2
  3. package/dist/const.js.map +1 -1
  4. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +14 -0
  5. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js +46 -0
  6. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
  7. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.d.ts +3 -2
  8. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js +4 -2
  9. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js.map +1 -1
  10. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.d.ts +9 -0
  11. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js +46 -0
  12. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js.map +1 -0
  13. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +4 -0
  14. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  15. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +2 -0
  16. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +2 -0
  17. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  18. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.d.ts +6 -1
  19. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js +39 -10
  20. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js.map +1 -1
  21. package/dist/integration-engine/vehicle-positions/ioc/Di.js +2 -0
  22. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  23. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +1 -0
  24. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +1 -0
  25. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  26. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +10 -5
  27. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +35 -9
  28. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
  29. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts +4 -1
  30. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +21 -8
  31. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
  32. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +7 -3
  33. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +26 -8
  34. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
  35. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
  36. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +1 -1
  37. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
  38. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +1 -1
  39. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
  40. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.d.ts +6 -0
  41. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js +3 -2
  42. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
  43. package/dist/output-gateway/pid/service/facade/TransferFacade.d.ts +8 -1
  44. package/dist/output-gateway/pid/service/facade/TransferFacade.js +25 -10
  45. package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
  46. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.d.ts +10 -3
  47. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js +30 -7
  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 +7 -3
  50. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js +30 -7
  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 +10 -3
  53. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js +30 -7
  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 +10 -3
  56. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js +30 -7
  57. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js.map +1 -1
  58. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +11 -0
  59. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js +46 -0
  60. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
  61. package/dist/output-gateway/vehicle-positions/data-access/index.js +9 -18
  62. package/dist/output-gateway/vehicle-positions/data-access/index.js.map +1 -1
  63. package/dist/output-gateway/vehicle-positions/data-access/interfaces/ITripWithPositionRepository.d.ts +3 -2
  64. package/dist/output-gateway/vehicle-positions/data-access/interfaces/IVPRepositoryInstances.d.ts +6 -6
  65. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.d.ts +7 -3
  66. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js +30 -7
  67. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js.map +1 -1
  68. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.d.ts +17 -7
  69. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js +112 -42
  70. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js.map +1 -1
  71. package/dist/output-gateway/vehicle-positions/ioc/Di.d.ts +3 -0
  72. package/dist/output-gateway/vehicle-positions/ioc/Di.js +23 -0
  73. package/dist/output-gateway/vehicle-positions/ioc/Di.js.map +1 -0
  74. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.d.ts +9 -0
  75. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js +15 -0
  76. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js.map +1 -0
  77. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.d.ts +3 -0
  78. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js +40 -0
  79. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js.map +1 -0
  80. package/dist/schema-definitions/datasources/static-data/index.d.ts +1 -0
  81. package/dist/schema-definitions/datasources/static-data/index.js +1 -0
  82. package/dist/schema-definitions/datasources/static-data/index.js.map +1 -1
  83. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.d.ts +35 -0
  84. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js +18 -0
  85. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js.map +1 -0
  86. package/dist/schema-definitions/datasources/static-data/interfaces/index.d.ts +1 -0
  87. package/dist/schema-definitions/datasources/static-data/interfaces/index.js +1 -0
  88. package/dist/schema-definitions/datasources/static-data/interfaces/index.js.map +1 -1
  89. package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts +6 -0
  90. package/docs/examples/not_public_vehicles.json +9 -0
  91. package/docs/openapi-output.yaml +2 -1
  92. package/package.json +1 -1
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.BusMessageFilter = void 0;
16
+ const NotPublicVehiclesRedisRepository_1 = require("../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository");
16
17
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
18
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
19
  const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
@@ -21,19 +22,27 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
21
22
  const TROLLEYBUS_ROUTE_ID_MIN = 50;
22
23
  const TROLLEYBUS_ROUTE_ID_MAX = 69;
23
24
  let BusMessageFilter = class BusMessageFilter {
24
- constructor(logger, timestampValidator, config) {
25
+ constructor(logger, timestampValidator, config, notPublicVehiclesRepository) {
25
26
  this.logger = logger;
26
27
  this.timestampValidator = timestampValidator;
27
28
  this.config = config;
28
- this.dppTestingBuses = this.config.getValue("module.pid.vehicle-positions.dppTestingBuses.*", []);
29
+ this.notPublicVehiclesRepository = notPublicVehiclesRepository;
30
+ this.dppTestingBuses = new Set(this.config.getValue("module.pid.vehicle-positions.dppTestingBuses.*", []));
29
31
  }
30
32
  /**
31
33
  * Yield messages that are valid for processing (filter out internal bus lines and testing buses)
32
- * - route id is a string of length 3 or more
33
- * - route id is a number in range of bus and trolleybus lines
34
- * - route id >= 100 (bus) [50, 69] (trolleybus)
34
+ * - route id is a string of length 3 or more (bus)
35
+ * - route id is a number in range of trolleybus lines [50, 69]
36
+ * - OR registration number is in not-public vehicles whitelist (e.g., metro replacement buses)
37
+ * - filters out testing buses
38
+ *
39
+ * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
35
40
  */
36
- *yieldFilteredMessages(messages, timestamp) {
41
+ async *yieldFilteredMessages(messages, timestamp) {
42
+ // Load config once for the entire batch to avoid multiple Redis calls
43
+ const { road: { registrationNumbers }, routeIds, } = await this.notPublicVehiclesRepository.getConfig();
44
+ const whitelistedRegistrationNumbers = new Set(registrationNumbers);
45
+ const whitelistedRouteNames = new Set(routeIds);
37
46
  for (const message of messages) {
38
47
  const { run } = message;
39
48
  if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
@@ -42,25 +51,41 @@ let BusMessageFilter = class BusMessageFilter {
42
51
  `is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
43
52
  continue;
44
53
  }
54
+ // Check if this is a not-public vehicle
55
+ // - Whitelisted registration number (e.g., metro replacement bus)
56
+ // - Whitelisted route name (e.g., ad-hoc routes like X1, X2, NAD)
57
+ const isNotPublicByRegistration = whitelistedRegistrationNumbers.has(run.registration_number);
58
+ const isNotPublicByRouteName = whitelistedRouteNames.has(run.line_short_name);
59
+ const isNotPublicVehicle = isNotPublicByRegistration || isNotPublicByRouteName;
60
+ // Allow if whitelisted by registration number or route name (skip other validation)
61
+ if (isNotPublicVehicle) {
62
+ message.isNotPublic = true; // ← Set flag
63
+ yield message;
64
+ continue;
65
+ }
66
+ // Regular bus (route_id length > 2)
45
67
  if (run.route_id.length > 2) {
46
68
  if (this.isTestingBus(message.run.registration_number)) {
47
- this.logger.info(`Testing bus ${message.run.registration_number} was filterd out`);
69
+ this.logger.info(`Testing bus ${message.run.registration_number} was filtered out`);
48
70
  continue;
49
71
  }
72
+ message.isNotPublic = false; // ← Set flag (scheduled bus)
50
73
  yield message;
51
74
  continue;
52
75
  }
76
+ // Trolleybus (route_id in range [50-69])
53
77
  const routeId = Number.parseInt(run.route_id);
54
78
  if (Number.isNaN(routeId) || routeId < TROLLEYBUS_ROUTE_ID_MIN || routeId > TROLLEYBUS_ROUTE_ID_MAX) {
55
79
  this.logger.info(`${this.constructor.name}: route id ${routeId} is invalid or out of range`);
56
80
  this.logger.debug(message);
57
81
  continue;
58
82
  }
83
+ message.isNotPublic = false; // ← Set flag (scheduled trolleybus)
59
84
  yield message;
60
85
  }
61
86
  }
62
87
  isTestingBus(reqNumber) {
63
- return this.dppTestingBuses.includes(reqNumber);
88
+ return this.dppTestingBuses.has(reqNumber);
64
89
  }
65
90
  };
66
91
  exports.BusMessageFilter = BusMessageFilter;
@@ -69,6 +94,7 @@ exports.BusMessageFilter = BusMessageFilter = __decorate([
69
94
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
70
95
  __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
71
96
  __param(2, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
72
- __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator, Object])
97
+ __param(3, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.NotPublicVehiclesRedisRepository)),
98
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator, Object, NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository])
73
99
  ], BusMessageFilter);
74
100
  //# sourceMappingURL=BusMessageFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BusMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AAErE,iEAAwE;AAExE,oEAA8E;AAC9E,6DAA0D;AAC1D,6EAAwE;AAGxE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAG5B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAEzB,YACsC,MAAe,EACI,kBAAsC,EACnD,MAAqB;QAF3B,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;QACnD,WAAM,GAAN,MAAM,CAAe;QAE7D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gDAAgD,EAAE,EAAE,CAAa,CAAC;IAClH,CAAC;IAED;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC,EAAE,SAAiB;QACjF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAClH,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,mCAAmC;oBAC/B,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,WAAW,EAAE;oBAC5D,yBAAyB,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EACzF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;YACb,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,GAAG,CAAC,mBAAmB,kBAAkB,CAAC,CAAC;oBACnF,SAAS;gBACb,CAAC;gBACD,MAAM,OAAO,CAAC;gBACd,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,uBAAuB,IAAI,OAAO,GAAG,uBAAuB,EAAE,CAAC;gBAClG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,OAAO,6BAA6B,CAAC,CAAC;gBAC7F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACb,CAAC;YAED,MAAM,OAAO,CAAC;QAClB,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACJ,CAAA;AAzDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,qBAAU,GAAE;IAIJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,kBAAkB,CAAC,CAAA;IAC3C,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;6CAD0C,uCAAkB;GAJtF,gBAAgB,CAyD5B"}
1
+ {"version":3,"file":"BusMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,10 @@ export declare class CommonMessageProcessor {
5
5
  private logger;
6
6
  constructor(runsRepository: CommonRunsRepository);
7
7
  /**
8
- * Create/update and process transformed run
8
+ * Process a transformed run message
9
+ *
10
+ * @param element - The run with message data (already filtered, with isNotPublic flag set)
11
+ * @param firstMessageCreatedAt - Timestamp of the first message in the batch
9
12
  */
10
13
  processTransformedRun: (element: ICommonRunWithMessageDto, firstMessageCreatedAt?: number) => Promise<void>;
11
14
  private logElementIssues;
@@ -7,26 +7,39 @@ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
7
7
  const config_1 = require("@golemio/core/dist/integration-engine/config");
8
8
  const queueprocessors_1 = require("@golemio/core/dist/integration-engine/queueprocessors");
9
9
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
10
- const const_1 = require("../../../../../const");
11
10
  const ONE_HOUR_IN_MILLIS = 60 * 60 * 1000;
12
11
  const MIN_HOURS_DIFF_TO_LOG = 22;
13
12
  class CommonMessageProcessor {
14
13
  constructor(runsRepository) {
15
14
  this.runsRepository = runsRepository;
16
15
  /**
17
- * Create/update and process transformed run
16
+ * Process a transformed run message
17
+ *
18
+ * @param element - The run with message data (already filtered, with isNotPublic flag set)
19
+ * @param firstMessageCreatedAt - Timestamp of the first message in the batch
18
20
  */
19
21
  this.processTransformedRun = async (element, firstMessageCreatedAt) => {
20
22
  this.logElementIssues(element);
21
23
  const record = await this.runsRepository.getRunRecordForUpdate(element.run);
22
24
  let outputMsg;
23
25
  if (record) {
24
- if (!element.run_message.actual_stop_timestamp_scheduled &&
25
- !const_1.ArrayNotPublicRegistrationNumbers.includes(element.run.registration_number)) {
26
- const lastRecordMessage = await this.runsRepository["runsMessagesRepository"].getLastMessage(record.id);
27
- if (!lastRecordMessage || !lastRecordMessage.actual_stop_timestamp_scheduled)
28
- return;
29
- element.run_message.actual_stop_timestamp_scheduled = lastRecordMessage.actual_stop_timestamp_scheduled;
26
+ // Data quality check: Ensure scheduled vehicles have timestamps
27
+ // Not-public vehicles (replacement buses/trams) don't need scheduled timestamps
28
+ // Regular scheduled vehicles MUST have a timestamp or be able to get one from history
29
+ if (!element.run_message.actual_stop_timestamp_scheduled) {
30
+ // Read flag set by filter (avoids duplicate whitelist check)
31
+ const isNotPublicVehicle = element.isNotPublic === true;
32
+ // If NOT a not-public vehicle, try to get timestamp from last message
33
+ // If we can't get it, skip this message (data quality issue)
34
+ if (!isNotPublicVehicle) {
35
+ const lastRecordMessage = await this.runsRepository["runsMessagesRepository"].getLastMessage(record.id);
36
+ if (!lastRecordMessage || !lastRecordMessage.actual_stop_timestamp_scheduled) {
37
+ // Cannot process scheduled vehicle without timestamp
38
+ return;
39
+ }
40
+ element.run_message.actual_stop_timestamp_scheduled = lastRecordMessage.actual_stop_timestamp_scheduled;
41
+ }
42
+ // If IS a not-public vehicle, continue without timestamp (this is expected)
30
43
  }
31
44
  outputMsg = await this.runsRepository.updateAndAssociate(element, record.id);
32
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommonMessageProcessor.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,2FAA0D;AAE1D,wEAAqE;AAErE,yEAAsE;AACtE,2FAAqF;AACrF,6EAAwE;AACxE,gDAAyE;AAGzE,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1C,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAa,sBAAsB;IAG/B,YAA6B,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;QAIjE;;WAEG;QACI,0BAAqB,GAAG,KAAK,EAAE,OAAiC,EAAE,qBAA8B,EAAiB,EAAE;YACtH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE5E,IAAI,SAAmC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACT,IACI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B;oBACpD,CAAC,yCAAiC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC9E,CAAC;oBACC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACxG,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,+BAA+B;wBAAE,OAAO;oBACrF,OAAO,CAAC,WAAW,CAAC,+BAA+B,GAAG,iBAAiB,CAAC,+BAA+B,CAAC;gBAC5G,CAAC;gBAED,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACJ,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,8BAAY,CAAC,qBAAqB,CACpC,GAAG,eAAM,CAAC,oBAAoB,IAAI,oCAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EACvE,sBAAsB,EACtB,SAAS,EACT,EAAE,SAAS,EAAE,qBAAqB,EAAE,CACvC,CAAC;QACN,CAAC,CAAC;QAhCE,IAAI,CAAC,MAAM,GAAG,iBAAY,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAiCO,gBAAgB,CAAC,OAAiC;QACtD,IACI,OAAO,CAAC,WAAW,CAAC,+BAA+B,YAAY,IAAI;YACnE,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;gBACtE,qBAAqB,GAAG,kBAAkB,EAChD,CAAC;YACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,WAAW,EAAE,GAAG;gBACrG,OAAO,qBAAqB,qBAAqB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO;gBACnF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AAzDD,wDAyDC"}
1
+ {"version":3,"file":"CommonMessageProcessor.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,2FAA0D;AAE1D,wEAAqE;AAErE,yEAAsE;AACtE,2FAAqF;AACrF,6EAAwE;AAGxE,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1C,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAa,sBAAsB;IAG/B,YAA6B,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;QAIjE;;;;;WAKG;QACI,0BAAqB,GAAG,KAAK,EAAE,OAAiC,EAAE,qBAA8B,EAAiB,EAAE;YACtH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE5E,IAAI,SAAmC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACT,gEAAgE;gBAChE,gFAAgF;gBAChF,sFAAsF;gBACtF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B,EAAE,CAAC;oBACvD,6DAA6D;oBAC7D,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;oBAExD,sEAAsE;oBACtE,6DAA6D;oBAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACtB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACxG,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,EAAE,CAAC;4BAC3E,qDAAqD;4BACrD,OAAO;wBACX,CAAC;wBACD,OAAO,CAAC,WAAW,CAAC,+BAA+B,GAAG,iBAAiB,CAAC,+BAA+B,CAAC;oBAC5G,CAAC;oBACD,4EAA4E;gBAChF,CAAC;gBAED,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACJ,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,8BAAY,CAAC,qBAAqB,CACpC,GAAG,eAAM,CAAC,oBAAoB,IAAI,oCAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EACvE,sBAAsB,EACtB,SAAS,EACT,EAAE,SAAS,EAAE,qBAAqB,EAAE,CACvC,CAAC;QACN,CAAC,CAAC;QA9CE,IAAI,CAAC,MAAM,GAAG,iBAAY,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IA+CO,gBAAgB,CAAC,OAAiC;QACtD,IACI,OAAO,CAAC,WAAW,CAAC,+BAA+B,YAAY,IAAI;YACnE,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;gBACtE,qBAAqB,GAAG,kBAAkB,EAChD,CAAC;YACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,WAAW,EAAE,GAAG;gBACrG,OAAO,qBAAqB,qBAAqB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO;gBACnF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AAvED,wDAuEC"}
@@ -1,19 +1,23 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
+ import { NotPublicVehiclesRedisRepository } from "../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository";
2
3
  import { ILogger } from "@golemio/core/dist/helpers/logger";
3
4
  import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
4
5
  import { TimestampValidator } from "./TimestampValidator";
5
6
  export declare class TramMessageFilter implements ICommonMessageFilter {
6
7
  private logger;
7
8
  private timestampValidator;
8
- constructor(logger: ILogger, timestampValidator: TimestampValidator);
9
+ private notPublicVehiclesRepository;
10
+ constructor(logger: ILogger, timestampValidator: TimestampValidator, notPublicVehiclesRepository: NotPublicVehiclesRedisRepository);
9
11
  /**
10
12
  * Yield tram messages that are valid for processing
11
13
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
12
14
  * - run number is less than 80
13
- * - mazačka trams (maintanance) are always processed, even though they are servicing routes
15
+ * - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
14
16
  * - timestamp is in acceptable range
17
+ *
18
+ * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
15
19
  */
16
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
20
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
17
21
  private isRouteIdValid;
18
22
  private isRunNumberValid;
19
23
  }
@@ -13,9 +13,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TramMessageFilter = void 0;
16
+ const NotPublicVehiclesRedisRepository_1 = require("../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository");
16
17
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
18
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
- const const_1 = require("../../../../../const");
19
19
  const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
20
20
  const TimestampValidator_1 = require("./TimestampValidator");
21
21
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
@@ -23,28 +23,44 @@ const TRAM_SERVICING_ROUTE_ID_MIN = 50;
23
23
  const TRAM_SERVICING_ROUTE_ID_MAX = 89;
24
24
  const TRAM_UNUSUAL_RUN_NUMBER_MIN = 80;
25
25
  let TramMessageFilter = class TramMessageFilter {
26
- constructor(logger, timestampValidator) {
26
+ constructor(logger, timestampValidator, notPublicVehiclesRepository) {
27
27
  this.logger = logger;
28
28
  this.timestampValidator = timestampValidator;
29
+ this.notPublicVehiclesRepository = notPublicVehiclesRepository;
29
30
  }
30
31
  /**
31
32
  * Yield tram messages that are valid for processing
32
33
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
33
34
  * - run number is less than 80
34
- * - mazačka trams (maintanance) are always processed, even though they are servicing routes
35
+ * - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
35
36
  * - timestamp is in acceptable range
37
+ *
38
+ * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
36
39
  */
37
- *yieldFilteredMessages(messages, timestamp) {
40
+ async *yieldFilteredMessages(messages, timestamp) {
41
+ // Load config once for the entire batch to avoid multiple Redis calls
42
+ const { tram: { registrationNumbers }, routeIds, } = await this.notPublicVehiclesRepository.getConfig();
43
+ const whitelistedRegistrationNumbers = new Set(registrationNumbers);
44
+ const whitelistedRouteNames = new Set(routeIds);
38
45
  for (const message of messages) {
39
- const { route_id, run_number, registration_number } = message.run;
46
+ const { route_id, run_number, registration_number, line_short_name } = message.run;
40
47
  if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
41
48
  this.logger.error(new golemio_errors_1.GeneralError("Message timestamp 'takt' of value" +
42
49
  message.run_message.actual_stop_timestamp_real.toISOString() +
43
50
  `is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
44
51
  continue;
45
52
  }
46
- if (const_1.ArrayNotPublicRegistrationNumbers.includes(registration_number) ||
47
- (this.isRouteIdValid(route_id) && this.isRunNumberValid(run_number))) {
53
+ // Check if this is a not-public vehicle
54
+ // - Whitelisted registration number (e.g., mazačka maintenance tram)
55
+ // - Whitelisted route name (e.g., ad-hoc routes like X1, X2, NAD)
56
+ const isNotPublicByRegistration = whitelistedRegistrationNumbers.has(registration_number);
57
+ const isNotPublicByRouteName = whitelistedRouteNames.has(line_short_name);
58
+ const isNotPublicVehicle = isNotPublicByRegistration || isNotPublicByRouteName;
59
+ // Allow if:
60
+ // - Whitelisted by registration number OR route name (not-public vehicles)
61
+ // - OR valid route_id and run_number (scheduled vehicles)
62
+ if (isNotPublicVehicle || (this.isRouteIdValid(route_id) && this.isRunNumberValid(run_number))) {
63
+ message.isNotPublic = isNotPublicVehicle; // ← Set flag
48
64
  yield message;
49
65
  }
50
66
  else {
@@ -67,6 +83,8 @@ exports.TramMessageFilter = TramMessageFilter = __decorate([
67
83
  (0, tsyringe_1.injectable)(),
68
84
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
69
85
  __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
70
- __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
86
+ __param(2, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.NotPublicVehiclesRedisRepository)),
87
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator,
88
+ NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository])
71
89
  ], TramMessageFilter);
72
90
  //# sourceMappingURL=TramMessageFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TramMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AAErE,iEAAwE;AACxE,gDAA8D;AAE9D,oEAA8E;AAC9E,6DAA0D;AAC1D,6EAAwE;AAExE,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAGhC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,YACsC,MAAe,EACI,kBAAsC;QADzD,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC5F,CAAC;IAEJ;;;;;;OAMG;IACI,CAAC,qBAAqB,CAAC,QAAoC,EAAE,SAAiB;QACjF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;YAElE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAClH,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,mCAAmC;oBAC/B,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,WAAW,EAAE;oBAC5D,yBAAyB,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EACzF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;YACb,CAAC;YAED,IACI,yCAAiC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC/D,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EACtE,CAAC;gBACC,MAAM,OAAO,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,QAAQ,kBAAkB,UAAU,aAAa,CAAC,CAAC;gBAC1G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,OAAe;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CACH,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;YAC5B,CAAC,aAAa,GAAG,2BAA2B,IAAI,aAAa,GAAG,2BAA2B,CAAC,CAC/F,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,SAAiB;QACtC,OAAO,SAAS,GAAG,2BAA2B,CAAC;IACnD,CAAC;CACJ,CAAA;AAvDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,kBAAkB,CAAC,CAAA;6CAA6B,uCAAkB;GAHtF,iBAAiB,CAuD7B"}
1
+ {"version":3,"file":"TramMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
2
  export interface ICommonMessageFilter {
3
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
3
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
4
4
  }
@@ -37,7 +37,7 @@ let SaveBusRunsToDBTask = class SaveBusRunsToDBTask extends workers_1.AbstractTa
37
37
  }
38
38
  const messages = this.messagesTransformation.transform({ data: data.M.V, timestamp });
39
39
  const filteredMessages = this.messageFilter.yieldFilteredMessages(messages, timestamp);
40
- for (const runMessage of filteredMessages) {
40
+ for await (const runMessage of filteredMessages) {
41
41
  await this.messageProcessor.processTransformedRun(runMessage, timestamp);
42
42
  }
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SaveBusRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAE3E,8EAA2E;AAG3E,iEAAwE;AAExE,wCAA2D;AAC3D,oEAA8E;AAC9E,iEAAgE;AAChE,4CAA2C;AAGpC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,sBAA8B;IAUnE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAmB,mCAAgB,CAAC,gBAAgB,CAAC,CAAC;IAClG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAjCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CAiC/B"}
1
+ {"version":3,"file":"SaveBusRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,wCAA2D;AAC3D,oEAA8E;AAC9E,iEAAgE;AAChE,4CAA2C;AAGpC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,sBAA8B;IAUnE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAmB,mCAAgB,CAAC,gBAAgB,CAAC,CAAC;IAClG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvF,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAjCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CAiC/B"}
@@ -37,7 +37,7 @@ let SaveTramRunsToDBTask = class SaveTramRunsToDBTask extends workers_1.Abstract
37
37
  }
38
38
  const messages = this.messagesTransformation.transform({ data: data.M.V, timestamp }, true);
39
39
  const filteredMessages = this.messageFilter.yieldFilteredMessages(messages, timestamp);
40
- for (const runMessage of filteredMessages) {
40
+ for await (const runMessage of filteredMessages) {
41
41
  await this.messageProcessor.processTransformedRun(runMessage, timestamp);
42
42
  }
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SaveTramRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA2D;AAC3D,oEAA8E;AAC9E,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,iEAAgE;AAChE,4CAA2C;AAIpC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,sBAA8B;IAUpE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,kBAAkB,CAAC;QAC/B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAoB,mCAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAhCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAgChC"}
1
+ {"version":3,"file":"SaveTramRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA2D;AAC3D,oEAA8E;AAC9E,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,iEAAgE;AAChE,4CAA2C;AAIpC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,sBAA8B;IAUpE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,kBAAkB,CAAC;QAC/B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAoB,mCAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvF,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAhCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAgChC"}
@@ -7,4 +7,10 @@ export interface IRunMessageWithStringTimestamps extends Omit<ICommonRunsMessage
7
7
  export interface IUpdateRunsGtfsTripInput {
8
8
  run: ICommonRunsModel;
9
9
  run_message: IRunMessageWithStringTimestamps;
10
+ /**
11
+ * Flag set by message filters to indicate this is a not-public vehicle
12
+ * (replacement bus/tram without schedule, or ad-hoc route)
13
+ * Used to avoid duplicate whitelist checks
14
+ */
15
+ isNotPublic?: boolean;
10
16
  }
@@ -9,7 +9,6 @@ const CommonRunsRepository_1 = require("../../runs/data-access/CommonRunsReposit
9
9
  const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
10
10
  const queueprocessors_1 = require("@golemio/core/dist/integration-engine/queueprocessors");
11
11
  const workers_1 = require("@golemio/core/dist/integration-engine/workers");
12
- const const_1 = require("../../../../../const");
13
12
  const PositionsRepository_1 = require("../data-access/PositionsRepository");
14
13
  const TripsRepository_1 = require("../data-access/TripsRepository");
15
14
  const PositionsMapper_1 = __importDefault(require("../data-access/helpers/PositionsMapper"));
@@ -49,7 +48,9 @@ class UpdateRunsGtfsTripIdTask extends workers_1.AbstractTask {
49
48
  async execute(data, messageProperties) {
50
49
  const schedule = await this.gtfsTripRunManager.setAndReturnScheduledTrips(data.run);
51
50
  if (schedule.length === 0) {
52
- if (const_1.ArrayNotPublicRegistrationNumbers.includes(data.run.registration_number)) {
51
+ // Use the isNotPublic flag set by the filter to avoid duplicate Redis calls
52
+ // This flag is true if the vehicle is whitelisted by registration number or route name
53
+ if (data.isNotPublic === true) {
53
54
  await this.updateNotPublicRunTrip(data);
54
55
  }
55
56
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateRunsGtfsTripIdTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateRunsGtfsTripIdTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { DelayComputationRepository } from "../../../public/data-access/redis/De
8
8
  import { PublicGtfsDepartureRepository } from "../../../public/data-access/redis/PublicGtfsDepartureRepository";
9
9
  import { PublicStopTimeRepository } from "../../../public/data-access/redis/PublicStopTimeRepository";
10
10
  import { PublicVehiclePositionsRepository } from "../../../public/data-access/redis/PublicVehiclePositionsRepository";
11
+ import { ILogger } from "@golemio/core/dist/helpers";
11
12
  import { Moment } from "@golemio/core/dist/shared/moment-timezone";
12
13
  import { TransferDepartureTransformation } from "../transformations/TransferDepartureTransformation";
13
14
  export type FilterTripToStops = {
@@ -26,6 +27,7 @@ export type LineFilterDto = {
26
27
  };
27
28
  export type LineFilterFn = (params: LineFilterDto) => Promise<LineFilterDto>;
28
29
  export declare class TransferFacade {
30
+ private log;
29
31
  private publicDepartureRepository;
30
32
  private departuresRepository;
31
33
  private departureTransformation;
@@ -37,7 +39,7 @@ export declare class TransferFacade {
37
39
  private static readonly MINUTE_AS_MS;
38
40
  private static readonly OPEN_MINUTES_IN_PAST;
39
41
  private static readonly OPEN_MINUTES_IN_PAST_MS;
40
- constructor(publicDepartureRepository: PublicGtfsDepartureRepository, departuresRepository: DeparturesRepository, departureTransformation: TransferDepartureTransformation, tripRepository: PublicVehiclePositionsRepository, stopTimeRepository: PublicStopTimeRepository, delayComputationRepository: DelayComputationRepository);
42
+ constructor(log: ILogger, publicDepartureRepository: PublicGtfsDepartureRepository, departuresRepository: DeparturesRepository, departureTransformation: TransferDepartureTransformation, tripRepository: PublicVehiclePositionsRepository, stopTimeRepository: PublicStopTimeRepository, delayComputationRepository: DelayComputationRepository);
41
43
  getTransferDepartures(stopIds: string[], tripNumber: string | null, currentMoment: Moment, minutesOffset: number, timeZone?: string): Promise<ITransferOutputDto[]>;
42
44
  private static sortByDepartureTime;
43
45
  private static isDifferentLine;
@@ -46,6 +48,11 @@ export declare class TransferFacade {
46
48
  private calculateTimeFrom;
47
49
  getTransferCache(stopId: string, stopIds: string[], limit: number, reqNumber: number, vehicleType: number, timeFrom: Date, sameNameStopIds: string[]): Promise<IV4TransferDto>;
48
50
  private static findStopTimeByStopId;
51
+ /**
52
+ * Find position from cache for a vehicle of given type and registration number. If no position was found and the vehicle type
53
+ * given is bus, attempt fallback to trolleybus.
54
+ */
55
+ private getDetailedVehiclePositionWithFallback;
49
56
  private findVehicleArrival;
50
57
  private processMultiplePositionsForDeparturesAtOnce;
51
58
  private static findPreviousStop;
@@ -25,6 +25,7 @@ const DepartureFilter_1 = require("../../helpers/enums/DepartureFilter");
25
25
  const DepartureMode_1 = require("../../helpers/enums/DepartureMode");
26
26
  const DepartureOrder_1 = require("../../helpers/enums/DepartureOrder");
27
27
  const DepartureSkip_1 = require("../../helpers/enums/DepartureSkip");
28
+ const TransferBoardFilter_1 = require("../../helpers/TransferBoardFilter");
28
29
  const OgPidToken_1 = require("../../ioc/OgPidToken");
29
30
  const PIDDepartureModel_1 = __importDefault(require("../../models/helpers/PIDDepartureModel"));
30
31
  const DelayComputationRepository_1 = require("../../../public/data-access/redis/DelayComputationRepository");
@@ -32,15 +33,16 @@ const PublicGtfsDepartureRepository_1 = require("../../../public/data-access/red
32
33
  const PublicStopTimeRepository_1 = require("../../../public/data-access/redis/PublicStopTimeRepository");
33
34
  const PublicVehiclePositionsRepository_1 = require("../../../public/data-access/redis/PublicVehiclePositionsRepository");
34
35
  const shared_1 = require("../../../shared");
36
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
35
37
  const monitoring_1 = require("@golemio/core/dist/monitoring");
36
38
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
37
39
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
38
40
  const const_1 = require("../../../../const");
39
41
  const TransferDepartureTransformation_1 = require("../transformations/TransferDepartureTransformation");
40
- const TransferBoardFilter_1 = require("../../helpers/TransferBoardFilter");
41
42
  const DUMMY_EMPTY_STRING_FOR_FILTERING = "";
42
43
  let TransferFacade = TransferFacade_1 = class TransferFacade {
43
- constructor(publicDepartureRepository, departuresRepository, departureTransformation, tripRepository, stopTimeRepository, delayComputationRepository) {
44
+ constructor(log, publicDepartureRepository, departuresRepository, departureTransformation, tripRepository, stopTimeRepository, delayComputationRepository) {
45
+ this.log = log;
44
46
  this.publicDepartureRepository = publicDepartureRepository;
45
47
  this.departuresRepository = departuresRepository;
46
48
  this.departureTransformation = departureTransformation;
@@ -132,7 +134,7 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
132
134
  let currentTripId = null;
133
135
  try {
134
136
  // 1. find the vehicle
135
- const currentPosition = await this.tripRepository.getDetailedVehiclePosition(`service-${vehicleType}-${reqNumber}`);
137
+ const currentPosition = await this.getDetailedVehiclePositionWithFallback(vehicleType, reqNumber);
136
138
  if (currentPosition) {
137
139
  // vehicle is on the map
138
140
  // 2. find its arrival to the stop-id
@@ -213,6 +215,18 @@ let TransferFacade = TransferFacade_1 = class TransferFacade {
213
215
  static findStopTimeByStopId(stopTimes, stopIds) {
214
216
  return stopTimes.find((stopTime) => stopIds.includes(stopTime.stop_id)) || null;
215
217
  }
218
+ /**
219
+ * Find position from cache for a vehicle of given type and registration number. If no position was found and the vehicle type
220
+ * given is bus, attempt fallback to trolleybus.
221
+ */
222
+ async getDetailedVehiclePositionWithFallback(vehicleType, reqNumber) {
223
+ const position = await this.tripRepository.getDetailedVehiclePosition(`service-${vehicleType}-${reqNumber}`);
224
+ if (!position && vehicleType === RouteTypeEnums_1.GTFSRouteTypeEnum.BUS) {
225
+ this.log.info(`${this.constructor.name}: Fallback to trolleybus for registration number ${reqNumber}`);
226
+ return await this.tripRepository.getDetailedVehiclePosition(`service-${RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS}-${reqNumber}`);
227
+ }
228
+ return position;
229
+ }
216
230
  async findVehicleArrival(currentPosition, stopIds, stopId) {
217
231
  const stopTimes = (await this.delayComputationRepository.getDelayComputationCacheProperty(currentPosition.gtfs_trip_id, "stop_times"));
218
232
  if (!stopTimes?.stop_times?.length) {
@@ -505,13 +519,14 @@ TransferFacade.OPEN_MINUTES_IN_PAST = 61;
505
519
  TransferFacade.OPEN_MINUTES_IN_PAST_MS = TransferFacade_1.OPEN_MINUTES_IN_PAST * TransferFacade_1.MINUTE_AS_MS;
506
520
  exports.TransferFacade = TransferFacade = TransferFacade_1 = __decorate([
507
521
  (0, tsyringe_1.injectable)(),
508
- __param(0, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicGtfsDepartureRepository)),
509
- __param(1, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.DeparturesRepository)),
510
- __param(2, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.TransferDepartureTransformation)),
511
- __param(3, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicVehiclePositionsRepository)),
512
- __param(4, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicStopTimeRepository)),
513
- __param(5, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.DelayComputationRepository)),
514
- __metadata("design:paramtypes", [PublicGtfsDepartureRepository_1.PublicGtfsDepartureRepository,
522
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
523
+ __param(1, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicGtfsDepartureRepository)),
524
+ __param(2, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.DeparturesRepository)),
525
+ __param(3, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.TransferDepartureTransformation)),
526
+ __param(4, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicVehiclePositionsRepository)),
527
+ __param(5, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicStopTimeRepository)),
528
+ __param(6, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.DelayComputationRepository)),
529
+ __metadata("design:paramtypes", [Object, PublicGtfsDepartureRepository_1.PublicGtfsDepartureRepository,
515
530
  data_access_1.DeparturesRepository,
516
531
  TransferDepartureTransformation_1.TransferDepartureTransformation,
517
532
  PublicVehiclePositionsRepository_1.PublicVehiclePositionsRepository,
@@ -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":"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"}