@golemio/pid 2.13.2 → 2.13.3-dev.1293208757

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 (63) hide show
  1. package/db/migrations/postgresql/20240509102153-update-v-vehiclepositions-past-stop-times.js +53 -0
  2. package/db/migrations/postgresql/sqls/20240509102153-update-v-vehiclepositions-past-stop-times-down.sql +42 -0
  3. package/db/migrations/postgresql/sqls/20240509102153-update-v-vehiclepositions-past-stop-times-up.sql +42 -0
  4. package/dist/integration-engine/vehicle-positions/ioc/Di.js +14 -0
  5. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  6. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +7 -0
  7. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +7 -0
  8. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  9. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js +4 -8
  10. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js.map +1 -1
  11. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +4 -2
  12. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +13 -3
  13. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
  14. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.d.ts +6 -0
  15. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.js +38 -0
  16. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.js.map +1 -0
  17. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +5 -2
  18. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +14 -3
  19. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
  20. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
  21. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.d.ts +4 -5
  22. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js +16 -22
  23. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js.map +1 -1
  24. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.d.ts +4 -4
  25. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js +4 -3
  26. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js.map +1 -1
  27. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/interfaces/IRegionalBusMessageFilter.d.ts +1 -1
  28. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/interfaces/IRegionalBusRunsFacade.d.ts +2 -2
  29. package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/MetroRunsMessageInterfaces.d.ts +3 -0
  30. package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/RegionalBusRunsMessageInterfaces.d.ts +4 -0
  31. package/dist/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.js +4 -0
  32. package/dist/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.js.map +1 -1
  33. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.d.ts +1 -1
  34. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js +19 -5
  35. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js.map +1 -1
  36. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.d.ts +2 -2
  37. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js +11 -2
  38. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js.map +1 -1
  39. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.d.ts +1 -1
  40. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +21 -8
  41. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
  42. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.d.ts +5 -1
  43. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js +42 -8
  44. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js.map +1 -1
  45. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.d.ts +1 -1
  46. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +21 -8
  47. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
  48. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.d.ts +3 -1
  49. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +28 -7
  50. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
  51. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.d.ts +2 -2
  52. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.js +1 -1
  53. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.js.map +1 -1
  54. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js +1 -0
  55. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js.map +1 -1
  56. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.d.ts +0 -1
  57. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js +0 -1
  58. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js.map +1 -1
  59. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.d.ts +3 -6
  60. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js +8 -19
  61. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -1
  62. package/dist/schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel.d.ts +1 -0
  63. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var dbm;
4
+ var type;
5
+ var seed;
6
+ var fs = require('fs');
7
+ var path = require('path');
8
+ var Promise;
9
+
10
+ /**
11
+ * We receive the dbmigrate dependency from dbmigrate initially.
12
+ * This enables us to not have to rely on NODE_PATH.
13
+ */
14
+ exports.setup = function(options, seedLink) {
15
+ dbm = options.dbmigrate;
16
+ type = dbm.dataType;
17
+ seed = seedLink;
18
+ Promise = options.Promise;
19
+ };
20
+
21
+ exports.up = function(db) {
22
+ var filePath = path.join(__dirname, 'sqls', '20240509102153-update-v-vehiclepositions-past-stop-times-up.sql');
23
+ return new Promise( function( resolve, reject ) {
24
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25
+ if (err) return reject(err);
26
+ console.log('received data: ' + data);
27
+
28
+ resolve(data);
29
+ });
30
+ })
31
+ .then(function(data) {
32
+ return db.runSql(data);
33
+ });
34
+ };
35
+
36
+ exports.down = function(db) {
37
+ var filePath = path.join(__dirname, 'sqls', '20240509102153-update-v-vehiclepositions-past-stop-times-down.sql');
38
+ return new Promise( function( resolve, reject ) {
39
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40
+ if (err) return reject(err);
41
+ console.log('received data: ' + data);
42
+
43
+ resolve(data);
44
+ });
45
+ })
46
+ .then(function(data) {
47
+ return db.runSql(data);
48
+ });
49
+ };
50
+
51
+ exports._meta = {
52
+ "version": 1
53
+ };
@@ -0,0 +1,42 @@
1
+ CREATE OR REPLACE VIEW v_vehiclepositions_past_stop_times
2
+ AS SELECT sub.trips_id AS rt_trip_id,
3
+ sub.last_stop_sequence AS stop_sequence,
4
+ sub.last_stop_id AS stop_id,
5
+ sub.last_stop_arrival_time AS stop_arrival,
6
+ sub.last_stop_departure_time AS stop_departure,
7
+ min(sub.delay_stop_arrival) AS stop_arr_delay,
8
+ max(sub.delay_stop_departure) AS stop_dep_delay
9
+ FROM ( SELECT rt_position.trips_id,
10
+ rt_position.last_stop_sequence,
11
+ rt_position.last_stop_id,
12
+ rt_position.last_stop_arrival_time,
13
+ rt_position.last_stop_departure_time,
14
+ rt_position.delay_stop_arrival,
15
+ rt_position.delay_stop_departure,
16
+ row_number() OVER seq AS rn
17
+ FROM vehiclepositions_positions rt_position
18
+ WHERE (rt_position.delay_stop_arrival IS NOT NULL OR rt_position.delay_stop_departure IS NOT NULL) AND (rt_position.state_position::text = ANY (ARRAY['on_track'::character varying::text, 'at_stop'::character varying::text, 'after_track'::character varying::text]))
19
+ WINDOW seq AS (PARTITION BY rt_position.trips_id, rt_position.last_stop_sequence, rt_position.state_position ORDER BY rt_position.id)) sub
20
+ WHERE sub.rn = 1
21
+ GROUP BY sub.trips_id, sub.last_stop_arrival_time, sub.last_stop_departure_time, sub.last_stop_sequence, sub.last_stop_id
22
+ ORDER BY sub.trips_id, sub.last_stop_sequence;
23
+
24
+
25
+ CREATE OR REPLACE VIEW v_public_vehiclepositions_past_stop_times
26
+ AS SELECT sub.trips_id AS rt_trip_id,
27
+ sub.last_stop_sequence AS stop_sequence,
28
+ min(sub.delay_stop_arrival) AS stop_arr_delay,
29
+ max(sub.delay_stop_departure) AS stop_dep_delay,
30
+ sub.last_stop_id AS stop_id
31
+ FROM ( SELECT rt_position.trips_id,
32
+ rt_position.last_stop_id,
33
+ rt_position.last_stop_sequence,
34
+ rt_position.delay_stop_arrival,
35
+ rt_position.delay_stop_departure,
36
+ row_number() OVER seq AS rn
37
+ FROM vehiclepositions_positions rt_position
38
+ WHERE (rt_position.delay_stop_arrival IS NOT NULL OR rt_position.delay_stop_departure IS NOT NULL) AND (rt_position.state_position::text = ANY (ARRAY['on_track'::character varying, 'at_stop'::character varying, 'after_track'::character varying]::text[]))
39
+ WINDOW seq AS (PARTITION BY rt_position.trips_id, rt_position.last_stop_sequence, rt_position.state_position ORDER BY rt_position.id)) sub
40
+ WHERE sub.rn = 1
41
+ GROUP BY sub.trips_id, sub.last_stop_sequence, sub.last_stop_id
42
+ ORDER BY sub.trips_id, sub.last_stop_sequence;
@@ -0,0 +1,42 @@
1
+ CREATE OR REPLACE VIEW v_vehiclepositions_past_stop_times
2
+ AS SELECT sub.trips_id AS rt_trip_id,
3
+ sub.last_stop_sequence AS stop_sequence,
4
+ sub.last_stop_id AS stop_id,
5
+ sub.last_stop_arrival_time AS stop_arrival,
6
+ sub.last_stop_departure_time AS stop_departure,
7
+ max(sub.delay_stop_arrival) AS stop_arr_delay,
8
+ min(sub.delay_stop_departure) AS stop_dep_delay
9
+ FROM ( SELECT rt_position.trips_id,
10
+ rt_position.last_stop_sequence,
11
+ rt_position.last_stop_id,
12
+ rt_position.last_stop_arrival_time,
13
+ rt_position.last_stop_departure_time,
14
+ rt_position.delay_stop_arrival,
15
+ rt_position.delay_stop_departure,
16
+ row_number() OVER seq AS rn
17
+ FROM vehiclepositions_positions rt_position
18
+ WHERE (rt_position.delay_stop_arrival IS NOT NULL OR rt_position.delay_stop_departure IS NOT NULL) AND (rt_position.state_position::text = ANY (ARRAY['on_track'::character varying::text, 'at_stop'::character varying::text, 'after_track'::character varying::text]))
19
+ WINDOW seq AS (PARTITION BY rt_position.trips_id, rt_position.last_stop_sequence, rt_position.state_position ORDER BY rt_position.id)) sub
20
+ WHERE sub.rn = 1
21
+ GROUP BY sub.trips_id, sub.last_stop_arrival_time, sub.last_stop_departure_time, sub.last_stop_sequence, sub.last_stop_id
22
+ ORDER BY sub.trips_id, sub.last_stop_sequence;
23
+
24
+
25
+ CREATE OR REPLACE VIEW v_public_vehiclepositions_past_stop_times
26
+ AS SELECT sub.trips_id AS rt_trip_id,
27
+ sub.last_stop_sequence AS stop_sequence,
28
+ max(sub.delay_stop_arrival) AS stop_arr_delay,
29
+ min(sub.delay_stop_departure) AS stop_dep_delay,
30
+ sub.last_stop_id AS stop_id
31
+ FROM ( SELECT rt_position.trips_id,
32
+ rt_position.last_stop_id,
33
+ rt_position.last_stop_sequence,
34
+ rt_position.delay_stop_arrival,
35
+ rt_position.delay_stop_departure,
36
+ row_number() OVER seq AS rn
37
+ FROM vehiclepositions_positions rt_position
38
+ WHERE (rt_position.delay_stop_arrival IS NOT NULL OR rt_position.delay_stop_departure IS NOT NULL) AND (rt_position.state_position::text = ANY (ARRAY['on_track'::character varying, 'at_stop'::character varying, 'after_track'::character varying]::text[]))
39
+ WINDOW seq AS (PARTITION BY rt_position.trips_id, rt_position.last_stop_sequence, rt_position.state_position ORDER BY rt_position.id)) sub
40
+ WHERE sub.rn = 1
41
+ GROUP BY sub.trips_id, sub.last_stop_sequence, sub.last_stop_id
42
+ ORDER BY sub.trips_id, sub.last_stop_sequence;
@@ -35,6 +35,13 @@ const RefreshPublicStopTimeCacheTask_1 = require("../workers/vehicle-positions/t
35
35
  const RefreshPublicTripCacheTask_1 = require("../workers/vehicle-positions/tasks/RefreshPublicTripCacheTask");
36
36
  const PublicApiTripTransformation_1 = require("../workers/vehicle-positions/transformations/PublicApiTripTransformation");
37
37
  const VPContainerToken_1 = require("./VPContainerToken");
38
+ const TimestampValidator_1 = require("../workers/runs/helpers/TimestampValidator");
39
+ const CommonRunsMessagesTransformation_1 = require("../workers/runs/transformations/CommonRunsMessagesTransformation");
40
+ const MetroRunsMessagesTransformation_1 = require("../workers/runs/transformations/MetroRunsMessagesTransformation");
41
+ const SaveTramRunsToDBTask_1 = require("../workers/runs/tasks/SaveTramRunsToDBTask");
42
+ const SaveBusRunsToDBTask_1 = require("../workers/runs/tasks/SaveBusRunsToDBTask");
43
+ const SaveMetroRunsToDBTask_1 = require("../workers/runs/tasks/SaveMetroRunsToDBTask");
44
+ const ProcessMetroRunMessagesTask_1 = require("../workers/runs/tasks/ProcessMetroRunMessagesTask");
38
45
  //#region Initialization
39
46
  const VPContainer = Di_1.PidContainer.createChildContainer();
40
47
  exports.VPContainer = VPContainer;
@@ -59,6 +66,8 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.CachedMetroRai
59
66
  VPContainer.register(VPContainerToken_1.VPContainerToken.DescriptorTransformation, DescriptorTransformation_1.DescriptorTransformation);
60
67
  VPContainer.register(VPContainerToken_1.VPContainerToken.RegionalBusRunsMessagesTransformation, RegionalBusRunsMessagesTransformation_1.RegionalBusRunsMessagesTransformation);
61
68
  VPContainer.register(VPContainerToken_1.VPContainerToken.PublicApiTripTransformation, PublicApiTripTransformation_1.PublicApiTripTransformation);
69
+ VPContainer.register(VPContainerToken_1.VPContainerToken.CommonRunsMessagesTransformation, CommonRunsMessagesTransformation_1.CommonRunsMessagesTransformation);
70
+ VPContainer.register(VPContainerToken_1.VPContainerToken.MetroRunsMessagesTransformation, MetroRunsMessagesTransformation_1.MetroRunsMessagesTransformation);
62
71
  //#endregion
63
72
  //#region Helpers
64
73
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DescriptorFilter, DescriptorFilter_1.DescriptorFilter);
@@ -71,6 +80,7 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusMes
71
80
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusRunsFacade, RegionalBusRunsFacade_1.RegionalBusRunsFacade);
72
81
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.HttpGtfsTripDataFixer, HttpGtfsTripDataFixer_1.HttpGtfsTripDataFixer);
73
82
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.GtfsTripDataFixerFactory, GtfsTripDataFixerFactory_1.GtfsTripDataFixerFactory);
83
+ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.TimestampValidator, TimestampValidator_1.TimestampValidator);
74
84
  //#endregion
75
85
  //#region Helpers
76
86
  VPContainer.register(VPContainerToken_1.VPContainerToken.MetroShapePointsFixer, MetroShapePointsFixer_1.MetroShapePointsFixer);
@@ -82,4 +92,8 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.ProcessRegiona
82
92
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshPublicTripCacheTask, RefreshPublicTripCacheTask_1.RefreshPublicTripCacheTask);
83
93
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshPublicStopTimeCacheTask, RefreshPublicStopTimeCacheTask_1.RefreshPublicStopTimeCacheTask);
84
94
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshGtfsTripDataTask, RefreshGtfsTripDataTask_1.RefreshGtfsTripDataTask);
95
+ VPContainer.register(VPContainerToken_1.VPContainerToken.SaveTramRunsToDBTask, SaveTramRunsToDBTask_1.SaveTramRunsToDBTask);
96
+ VPContainer.register(VPContainerToken_1.VPContainerToken.SaveBusRunsToDBTask, SaveBusRunsToDBTask_1.SaveBusRunsToDBTask);
97
+ VPContainer.register(VPContainerToken_1.VPContainerToken.SaveMetroRunsToDBTask, SaveMetroRunsToDBTask_1.SaveMetroRunsToDBTask);
98
+ VPContainer.register(VPContainerToken_1.VPContainerToken.ProcessMetroRunMessagesTask, ProcessMetroRunMessagesTask_1.ProcessMetroRunMessagesTask);
85
99
  //# sourceMappingURL=Di.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,13 @@ declare const VPContainerToken: {
21
21
  RegionalBusMessageFilter: symbol;
22
22
  RegionalBusRunsFacade: symbol;
23
23
  SaveArrivaCityRunsToDBTask: symbol;
24
+ SaveTramRunsToDBTask: symbol;
25
+ SaveBusRunsToDBTask: symbol;
26
+ SaveMetroRunsToDBTask: symbol;
27
+ ProcessMetroRunMessagesTask: symbol;
24
28
  ProcessRegionalBusRunMessagesTask: symbol;
29
+ MetroRunsMessagesTransformation: symbol;
30
+ CommonRunsMessagesTransformation: symbol;
25
31
  SeznamAutobusuDataSourceProvider: symbol;
26
32
  DescriptorDataSourceFactory: symbol;
27
33
  DescriptorRepository: symbol;
@@ -32,5 +38,6 @@ declare const VPContainerToken: {
32
38
  MetroRailtrackGPSRepository: symbol;
33
39
  CachedMetroRailTrackLookup: symbol;
34
40
  MetroShapePointsFixer: symbol;
41
+ TimestampValidator: symbol;
35
42
  };
36
43
  export { VPContainerToken };
@@ -27,7 +27,13 @@ const VPContainerToken = {
27
27
  RegionalBusMessageFilter: Symbol(),
28
28
  RegionalBusRunsFacade: Symbol(),
29
29
  SaveArrivaCityRunsToDBTask: Symbol(),
30
+ SaveTramRunsToDBTask: Symbol(),
31
+ SaveBusRunsToDBTask: Symbol(),
32
+ SaveMetroRunsToDBTask: Symbol(),
33
+ ProcessMetroRunMessagesTask: Symbol(),
30
34
  ProcessRegionalBusRunMessagesTask: Symbol(),
35
+ MetroRunsMessagesTransformation: Symbol(),
36
+ CommonRunsMessagesTransformation: Symbol(),
31
37
  //#endregion
32
38
  //#region Vehicle Descriptors
33
39
  SeznamAutobusuDataSourceProvider: Symbol(),
@@ -45,6 +51,7 @@ const VPContainerToken = {
45
51
  //#endregion
46
52
  //#region Helpers
47
53
  MetroShapePointsFixer: Symbol(),
54
+ TimestampValidator: Symbol(),
48
55
  //#endregion
49
56
  //#endregion
50
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,EAAE;IACxB,wBAAwB,EAAE,MAAM,EAAE;IAClC,wBAAwB,EAAE,MAAM,EAAE;IAClC,6BAA6B,EAAE,MAAM,EAAE;IACvC,2BAA2B,EAAE,MAAM,EAAE;IACrC,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,uBAAuB,EAAE,MAAM,EAAE;IACjC,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,EAAE;IACvC,8BAA8B,EAAE,MAAM,EAAE;IACxC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,qCAAqC,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,gBAAgB,EAAE,MAAM,EAAE;IAC1B,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;IAEZ,2BAA2B;IAE3B,oBAAoB;IACpB,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,iBAAiB;IACjB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,YAAY;IAEZ,YAAY;CACf,CAAC;AAEO,4CAAgB"}
1
+ {"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,EAAE;IACxB,wBAAwB,EAAE,MAAM,EAAE;IAClC,wBAAwB,EAAE,MAAM,EAAE;IAClC,6BAA6B,EAAE,MAAM,EAAE;IACvC,2BAA2B,EAAE,MAAM,EAAE;IACrC,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,uBAAuB,EAAE,MAAM,EAAE;IACjC,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,EAAE;IACvC,8BAA8B,EAAE,MAAM,EAAE;IACxC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,qCAAqC,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,2BAA2B,EAAE,MAAM,EAAE;IACrC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,gCAAgC,EAAE,MAAM,EAAE;IAE1C,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,gBAAgB,EAAE,MAAM,EAAE;IAC1B,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;IAEZ,2BAA2B;IAE3B,oBAAoB;IACpB,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,iBAAiB;IACjB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,kBAAkB,EAAE,MAAM,EAAE;IAC5B,YAAY;IAEZ,YAAY;CACf,CAAC;AAEO,4CAAgB"}
@@ -5,10 +5,6 @@ const Di_1 = require("../../ioc/Di");
5
5
  const VPContainerToken_1 = require("../../ioc/VPContainerToken");
6
6
  const workers_1 = require("@golemio/core/dist/integration-engine/workers");
7
7
  const constants_1 = require("./constants");
8
- const ProcessMetroRunMessagesTask_1 = require("./tasks/ProcessMetroRunMessagesTask");
9
- const SaveBusRunsToDBTask_1 = require("./tasks/SaveBusRunsToDBTask");
10
- const SaveMetroRunsToDBTask_1 = require("./tasks/SaveMetroRunsToDBTask");
11
- const SaveTramRunsToDBTask_1 = require("./tasks/SaveTramRunsToDBTask");
12
8
  class RunsWorker extends workers_1.AbstractWorker {
13
9
  constructor() {
14
10
  super();
@@ -20,10 +16,10 @@ class RunsWorker extends workers_1.AbstractWorker {
20
16
  // Register tasks
21
17
  this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveArrivaCityRunsToDBTask));
22
18
  this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.ProcessRegionalBusRunMessagesTask));
23
- this.registerTask(new SaveBusRunsToDBTask_1.SaveBusRunsToDBTask(this.getQueuePrefix()));
24
- this.registerTask(new SaveTramRunsToDBTask_1.SaveTramRunsToDBTask(this.getQueuePrefix()));
25
- this.registerTask(new SaveMetroRunsToDBTask_1.SaveMetroRunsToDBTask(this.getQueuePrefix()));
26
- this.registerTask(new ProcessMetroRunMessagesTask_1.ProcessMetroRunMessagesTask(this.getQueuePrefix()));
19
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveTramRunsToDBTask));
20
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveBusRunsToDBTask));
21
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveMetroRunsToDBTask));
22
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.ProcessMetroRunMessagesTask));
27
23
  }
28
24
  }
29
25
  exports.RunsWorker = RunsWorker;
@@ -1 +1 @@
1
- {"version":3,"file":"RunsWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/workers/runs/RunsWorker.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,iEAA8E;AAC9E,2EAA6F;AAC7F,2CAA0C;AAC1C,qFAAkF;AAClF,qEAAkE;AAClE,yEAAsE;AACtE,uEAAoE;AAEpE,MAAa,UAAW,SAAQ,wBAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,uBAAW,CAAC;QActB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAZE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,IAAI,yCAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,IAAI,2CAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,IAAI,6CAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,IAAI,yDAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;CAMJ;AAnBD,gCAmBC"}
1
+ {"version":3,"file":"RunsWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/workers/runs/RunsWorker.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,iEAA8E;AAC9E,2EAA6F;AAC7F,2CAA0C;AAM1C,MAAa,UAAW,SAAQ,wBAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,uBAAW,CAAC;QAetB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAbE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAuB,mCAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAEpG,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAsB,mCAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAwB,mCAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAA8B,mCAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACtH,CAAC;CAMJ;AApBD,gCAoBC"}
@@ -1,14 +1,16 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
2
  import { ILogger } from "@golemio/core/dist/helpers/logger";
3
3
  import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
4
+ import { TimestampValidator } from "./TimestampValidator";
4
5
  export declare class BusMessageFilter implements ICommonMessageFilter {
5
6
  private logger;
6
- constructor(logger: ILogger);
7
+ private timestampValidator;
8
+ constructor(logger: ILogger, timestampValidator: TimestampValidator);
7
9
  /**
8
10
  * Yield messages that are valid for processing (filter out internal bus lines)
9
11
  * - route id is a string of length 3 or more
10
12
  * - route id is a number in range of bus and trolleybus lines
11
13
  * - route id >= 100 (bus) ∪ [50, 69] (trolleybus)
12
14
  */
13
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[]): Generator<ICommonRunWithMessageDto>;
15
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
14
16
  }
@@ -15,11 +15,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.BusMessageFilter = void 0;
16
16
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
17
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
+ const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
19
+ const TimestampValidator_1 = require("./TimestampValidator");
20
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
18
21
  const TROLLEYBUS_ROUTE_ID_MIN = 50;
19
22
  const TROLLEYBUS_ROUTE_ID_MAX = 69;
20
23
  let BusMessageFilter = exports.BusMessageFilter = class BusMessageFilter {
21
- constructor(logger) {
24
+ constructor(logger, timestampValidator) {
22
25
  this.logger = logger;
26
+ this.timestampValidator = timestampValidator;
23
27
  }
24
28
  /**
25
29
  * Yield messages that are valid for processing (filter out internal bus lines)
@@ -27,9 +31,14 @@ let BusMessageFilter = exports.BusMessageFilter = class BusMessageFilter {
27
31
  * - route id is a number in range of bus and trolleybus lines
28
32
  * - route id >= 100 (bus) ∪ [50, 69] (trolleybus)
29
33
  */
30
- *yieldFilteredMessages(messages) {
34
+ *yieldFilteredMessages(messages, timestamp) {
31
35
  for (const message of messages) {
32
36
  const { run } = message;
37
+ if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
38
+ this.logger.error(new golemio_errors_1.GeneralError(`Message timestamp 'takt' of value ${message.run_message.actual_stop_timestamp_real} is not valid ` +
39
+ `for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
40
+ continue;
41
+ }
33
42
  if (run.route_id.length > 2) {
34
43
  yield message;
35
44
  continue;
@@ -47,6 +56,7 @@ let BusMessageFilter = exports.BusMessageFilter = class BusMessageFilter {
47
56
  exports.BusMessageFilter = BusMessageFilter = __decorate([
48
57
  (0, tsyringe_1.injectable)(),
49
58
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
50
- __metadata("design:paramtypes", [Object])
59
+ __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
60
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
51
61
  ], BusMessageFilter);
52
62
  //# 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;AAGxE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAG5B,IAAM,gBAAgB,8BAAtB,MAAM,gBAAgB;IACzB,YAA8C,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEjE;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,MAAM,OAAO,CAAC;gBACd,SAAS;aACZ;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;gBACjG,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;aACZ;YAED,MAAM,OAAO,CAAC;SACjB;IACL,CAAC;CACJ,CAAA;2BA3BY,gBAAgB;IAD5B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAD5B,gBAAgB,CA2B5B"}
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;AAExE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAG5B,IAAM,gBAAgB,8BAAtB,MAAM,gBAAgB;IACzB,YACsC,MAAe,EACI,kBAAsC;QADzD,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC5F,CAAC;IAEJ;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC,EAAE,SAAiB;QACjF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,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;gBACjH,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,0BAA0B,gBAAgB;oBAC/F,YAAY,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAC5E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;aACZ;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,MAAM,OAAO,CAAC;gBACd,SAAS;aACZ;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;gBACjG,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;aACZ;YAED,MAAM,OAAO,CAAC;SACjB;IACL,CAAC;CACJ,CAAA;2BA5CY,gBAAgB;IAD5B,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,gBAAgB,CA4C5B"}
@@ -0,0 +1,6 @@
1
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
2
+ export declare class TimestampValidator {
3
+ private config;
4
+ constructor(config: ISimpleConfig);
5
+ isTimestampValid(now: number, timestamp: string): boolean;
6
+ }
@@ -0,0 +1,38 @@
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.TimestampValidator = void 0;
16
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
+ let TimestampValidator = exports.TimestampValidator = class TimestampValidator {
19
+ constructor(config) {
20
+ this.config = config;
21
+ }
22
+ isTimestampValid(now, timestamp) {
23
+ const convertedTimestamp = new Date(timestamp).getTime();
24
+ let convertedNow = new Date(now);
25
+ const before = convertedNow.setMinutes(convertedNow.getMinutes() -
26
+ Number(this.config.getValue("module.pid.vehicle-positions.tcpTimestampTolerance.beforeTimestamp", 120)));
27
+ convertedNow = new Date(now);
28
+ const after = convertedNow.setMinutes(convertedNow.getMinutes() +
29
+ Number(this.config.getValue("module.pid.vehicle-positions.tcpTimestampTolerance.afterTimestamp", 1)));
30
+ return convertedTimestamp >= before && convertedTimestamp <= after;
31
+ }
32
+ };
33
+ exports.TimestampValidator = TimestampValidator = __decorate([
34
+ (0, tsyringe_1.injectable)(),
35
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
36
+ __metadata("design:paramtypes", [Object])
37
+ ], TimestampValidator);
38
+ //# sourceMappingURL=TimestampValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimestampValidator.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AACrE,iEAAwE;AAGjE,IAAM,kBAAkB,gCAAxB,MAAM,kBAAkB;IAC3B,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtE,gBAAgB,CAAC,GAAW,EAAE,SAAiB;QAClD,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAEzD,IAAI,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAClC,YAAY,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oEAAoE,EAAE,GAAG,CAAC,CAAC,CAC9G,CAAC;QACF,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CACjC,YAAY,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mEAAmE,EAAE,CAAC,CAAC,CAAC,CAC3G,CAAC;QAEF,OAAO,kBAAkB,IAAI,MAAM,IAAI,kBAAkB,IAAI,KAAK,CAAC;IACvE,CAAC;CACJ,CAAA;6BApBY,kBAAkB;IAD9B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GADlC,kBAAkB,CAoB9B"}
@@ -1,16 +1,19 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
2
  import { ILogger } from "@golemio/core/dist/helpers/logger";
3
3
  import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
4
+ import { TimestampValidator } from "./TimestampValidator";
4
5
  export declare class TramMessageFilter implements ICommonMessageFilter {
5
6
  private logger;
6
- constructor(logger: ILogger);
7
+ private timestampValidator;
8
+ constructor(logger: ILogger, timestampValidator: TimestampValidator);
7
9
  /**
8
10
  * Yield tram messages that are valid for processing
9
11
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
10
12
  * - run number is less than 80
11
13
  * - mazačka trams (maintanance) are always processed, even though they are servicing routes
14
+ * - timestamp is in acceptable range
12
15
  */
13
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[]): Generator<ICommonRunWithMessageDto>;
16
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
14
17
  private isRouteIdValid;
15
18
  private isRunNumberValid;
16
19
  }
@@ -16,22 +16,32 @@ exports.TramMessageFilter = void 0;
16
16
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
17
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
18
  const const_1 = require("../../../../../const");
19
+ const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
20
+ const TimestampValidator_1 = require("./TimestampValidator");
21
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
19
22
  const TRAM_SERVICING_ROUTE_ID_MIN = 50;
20
23
  const TRAM_SERVICING_ROUTE_ID_MAX = 89;
21
24
  const TRAM_UNUSUAL_RUN_NUMBER_MIN = 80;
22
25
  let TramMessageFilter = exports.TramMessageFilter = class TramMessageFilter {
23
- constructor(logger) {
26
+ constructor(logger, timestampValidator) {
24
27
  this.logger = logger;
28
+ this.timestampValidator = timestampValidator;
25
29
  }
26
30
  /**
27
31
  * Yield tram messages that are valid for processing
28
32
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
29
33
  * - run number is less than 80
30
34
  * - mazačka trams (maintanance) are always processed, even though they are servicing routes
35
+ * - timestamp is in acceptable range
31
36
  */
32
- *yieldFilteredMessages(messages) {
37
+ *yieldFilteredMessages(messages, timestamp) {
33
38
  for (const message of messages) {
34
39
  const { route_id, run_number, registration_number } = message.run;
40
+ if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
41
+ this.logger.error(new golemio_errors_1.GeneralError(`Message timestamp 'takt' of value ${message.run_message.actual_stop_timestamp_real} is not valid ` +
42
+ `for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
43
+ continue;
44
+ }
35
45
  if (const_1.ArrayNotPublicRegistrationNumbers.includes(registration_number) ||
36
46
  (this.isRouteIdValid(route_id) && this.isRunNumberValid(run_number))) {
37
47
  yield message;
@@ -55,6 +65,7 @@ let TramMessageFilter = exports.TramMessageFilter = class TramMessageFilter {
55
65
  exports.TramMessageFilter = TramMessageFilter = __decorate([
56
66
  (0, tsyringe_1.injectable)(),
57
67
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
58
- __metadata("design:paramtypes", [Object])
68
+ __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
69
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
59
70
  ], TramMessageFilter);
60
71
  //# 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;AAG9D,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAGhC,IAAM,iBAAiB,+BAAvB,MAAM,iBAAiB;IAC1B,YAA8C,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEjE;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;YAElE,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;gBACE,MAAM,OAAO,CAAC;aACjB;iBAAM;gBACH,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;gBAC3B,SAAS;aACZ;SACJ;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;4BArCY,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAD5B,iBAAiB,CAqC7B"}
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,+BAAvB,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;YAC5B,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;gBACjH,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,0BAA0B,gBAAgB;oBAC/F,YAAY,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAC5E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;aACZ;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;gBACE,MAAM,OAAO,CAAC;aACjB;iBAAM;gBACH,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;gBAC3B,SAAS;aACZ;SACJ;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;4BAvDY,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,4 +1,4 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
2
  export interface ICommonMessageFilter {
3
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[]): Generator<ICommonRunWithMessageDto>;
3
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
4
4
  }
@@ -1,14 +1,13 @@
1
1
  import { IRegionalBusRunsMessagesModel } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel";
2
- import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
3
2
  import { ILogger } from "@golemio/core/dist/helpers/logger";
4
3
  import { IRegionalBusMessageFilter } from "./interfaces/IRegionalBusMessageFilter";
4
+ import { TimestampValidator } from "../TimestampValidator";
5
5
  export declare class RegionalBusMessageFilter implements IRegionalBusMessageFilter {
6
- private config;
7
6
  private logger;
8
- constructor(config: ISimpleConfig, logger: ILogger);
7
+ private timestampValidator;
8
+ constructor(logger: ILogger, timestampValidator: TimestampValidator);
9
9
  /**
10
10
  * Get messages that are valid for processing
11
11
  */
12
- getFilteredMessages(messages: IRegionalBusRunsMessagesModel[]): IRegionalBusRunsMessagesModel[];
13
- private get regNumberWhitelist();
12
+ getFilteredMessages(messages: IRegionalBusRunsMessagesModel[], timestamp: number): IRegionalBusRunsMessagesModel[];
14
13
  }
@@ -15,24 +15,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RegionalBusMessageFilter = void 0;
16
16
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
17
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
+ const VPContainerToken_1 = require("../../../../ioc/VPContainerToken");
19
+ const TimestampValidator_1 = require("../TimestampValidator");
20
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
18
21
  let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class RegionalBusMessageFilter {
19
- constructor(config, logger) {
20
- this.config = config;
22
+ constructor(logger, timestampValidator) {
21
23
  this.logger = logger;
24
+ this.timestampValidator = timestampValidator;
22
25
  }
23
26
  /**
24
27
  * Get messages that are valid for processing
25
28
  */
26
- getFilteredMessages(messages) {
29
+ getFilteredMessages(messages, timestamp) {
27
30
  let filteredMessages = [];
28
31
  for (const message of messages) {
29
- if (message.cis_line_id && message.cis_trip_number && message.registration_number && message.events !== "") {
30
- if (this.regNumberWhitelist && !this.regNumberWhitelist.includes(message.registration_number.toString())) {
31
- this.logger.verbose(
32
- // eslint-disable-next-line max-len
33
- `getFilteredMessages: message with registration_number=${message.registration_number} is not in whitelist, skipping`);
34
- continue;
35
- }
32
+ const isValidMessage = message.cis_line_id && message.cis_trip_number && message.registration_number && message.events !== "";
33
+ if (!this.timestampValidator.isTimestampValid(timestamp, message.timestamp)) {
34
+ this.logger.error(new golemio_errors_1.GeneralError(`Message timestamp 'tm' of value ${message.timestamp} is not valid ` +
35
+ `(line ${message.cis_line_id}, trip id ${message.cis_trip_number})`, this.constructor.name, undefined, undefined, "pid"));
36
+ continue;
37
+ }
38
+ if (isValidMessage) {
36
39
  filteredMessages.push(message);
37
40
  }
38
41
  }
@@ -41,20 +44,11 @@ let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class Regional
41
44
  }
42
45
  return filteredMessages;
43
46
  }
44
- get regNumberWhitelist() {
45
- const valuePath = "old.datasources.pid.vehicle-positions.regNumberWhitelist.regionalBus";
46
- const whitelistDict = this.config.getValue(valuePath, {});
47
- const whitelist = Object.values(whitelistDict);
48
- if (whitelist[0] !== "*") {
49
- return whitelist;
50
- }
51
- return null;
52
- }
53
47
  };
54
48
  exports.RegionalBusMessageFilter = RegionalBusMessageFilter = __decorate([
55
49
  (0, tsyringe_1.injectable)(),
56
- __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
57
- __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
58
- __metadata("design:paramtypes", [Object, Object])
50
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
51
+ __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
52
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
59
53
  ], RegionalBusMessageFilter);
60
54
  //# sourceMappingURL=RegionalBusMessageFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegionalBusMessageFilter.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,wEAAqE;AAErE,iEAAwE;AAIjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YAC4C,MAAqB,EAC3B,MAAe;QADT,WAAM,GAAN,MAAM,CAAe;QAC3B,WAAM,GAAN,MAAM,CAAS;IAClD,CAAC;IAEJ;;OAEG;IACI,mBAAmB,CAAC,QAAyC;QAChE,IAAI,gBAAgB,GAAoC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;gBACxG,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,EAAE;oBACtG,IAAI,CAAC,MAAM,CAAC,OAAO;oBACf,mCAAmC;oBACnC,yDAAyD,OAAO,CAAC,mBAAmB,gCAAgC,CACvH,CAAC;oBACF,SAAS;iBACZ;gBAED,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;SACJ;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;SAChF;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,IAAY,kBAAkB;QAC1B,MAAM,SAAS,GAAG,sEAAsE,CAAC;QACzF,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAyB,SAAS,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE/C,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;mCA3CY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;IAC9B,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAHpB,wBAAwB,CA2CpC"}
1
+ {"version":3,"file":"RegionalBusMessageFilter.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AAErE,iEAAwE;AAExE,uEAA8E;AAC9E,8DAA2D;AAC3D,6EAAwE;AAGjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YACsC,MAAe,EACI,kBAAsC;QADzD,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC5F,CAAC;IAEJ;;OAEG;IACI,mBAAmB,CAAC,QAAyC,EAAE,SAAiB;QACnF,IAAI,gBAAgB,GAAoC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;YAC3G,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAU,CAAC,EAAE;gBAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,mCAAmC,OAAO,CAAC,SAAS,gBAAgB;oBAChE,SAAS,OAAO,CAAC,WAAW,aAAa,OAAO,CAAC,eAAe,GAAG,EACvE,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;aACZ;YAED,IAAI,cAAc,EAAE;gBAChB,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;SACJ;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;SAChF;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ,CAAA;mCAvCY,wBAAwB;IADpC,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,wBAAwB,CAuCpC"}