@golemio/pid 5.3.0-rc.2228022903 → 5.3.1-dev.2228047453

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.
@@ -43,9 +43,11 @@ export interface ITransformationResult {
43
43
  positions: IPositionTransformationResult[];
44
44
  stops: ICisStopDto[];
45
45
  trips: ITripTransformationResult[];
46
+ tripsWithCisStops: Map<string, number>;
46
47
  }
47
48
  export interface ITransformationElement {
48
- position: IPositionTransformationResult;
49
+ position: IPositionTransformationResult | null;
49
50
  stops: Map<string, ICisStopDto>;
50
- trip: ITripTransformationResult;
51
+ trip: ITripTransformationResult | null;
52
+ tripToCis: number | null;
51
53
  }
@@ -8,6 +8,7 @@ export declare class SaveDataToDBTask extends AbstractTask<IMpvMessageInput> {
8
8
  readonly schema: typeof SaveDataToDBValidationSchema;
9
9
  private readonly tripsRepository;
10
10
  private readonly cisStopRepository;
11
+ private readonly ropidGTFSCisStopsModel;
11
12
  private readonly messageTransformation;
12
13
  private readonly logger;
13
14
  constructor(queuePrefix: string);
@@ -15,5 +16,6 @@ export declare class SaveDataToDBTask extends AbstractTask<IMpvMessageInput> {
15
16
  private saveStops;
16
17
  private sendDataToUpdateGtfsTripId;
17
18
  private sendDataToUpdateDelay;
19
+ private preparePositionsFromCisStops;
18
20
  private getTripDataAndSendToUpdateDelay;
19
21
  }
@@ -14,6 +14,8 @@ const TripsRepository_1 = require("../data-access/TripsRepository");
14
14
  const TripsMapper_1 = __importDefault(require("../data-access/helpers/TripsMapper"));
15
15
  const SaveDataToDBSchema_1 = require("../schema/SaveDataToDBSchema");
16
16
  const MpvMessageTransformation_1 = require("../transformations/MpvMessageTransformation");
17
+ const RopidGTFSCisStopsModel_1 = require("../../../../ropid-gtfs/RopidGTFSCisStopsModel");
18
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
17
19
  class SaveDataToDBTask extends workers_1.AbstractTask {
18
20
  constructor(queuePrefix) {
19
21
  super(queuePrefix);
@@ -23,11 +25,14 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
23
25
  this.tripsRepository = new TripsRepository_1.TripsRepository();
24
26
  this.cisStopRepository = new CisStopRepository_1.CisStopRepository();
25
27
  this.messageTransformation = new MpvMessageTransformation_1.MpvMessageTransformation();
28
+ this.ropidGTFSCisStopsModel = new RopidGTFSCisStopsModel_1.RopidGTFSCisStopsModel();
26
29
  this.logger = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger);
27
30
  }
28
31
  async execute(data, messageProperties) {
29
32
  const taskStartTimestamp = new Date().getTime();
30
- const { trips, positions, stops } = await this.messageTransformation.transform(data.m.spoj);
33
+ const now = MpvMessageTransformation_1.MpvMessageTransformation.currentTimeInPrague();
34
+ const nowFormatted = MpvMessageTransformation_1.MpvMessageTransformation.currentTimeInPragueFormatted(now);
35
+ const { trips, positions, stops, tripsWithCisStops } = await this.messageTransformation.transform(data.m.spoj);
31
36
  const tripEntities = await this.tripsRepository.bulkSave(trips,
32
37
  // Ignore incoming start_timestamp for existing trips to avoid overwriting existing computed timestamp
33
38
  // TODO this is a workaround, dedicated column (gtfs_start_timestamp) will be added
@@ -35,11 +40,13 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
35
40
  .filter((key) => key !== "start_timestamp")
36
41
  .concat("updated_at"), true);
37
42
  const { inserted, updated } = TripsMapper_1.default.mapTripEntitiesToUpdateDto(tripEntities, taskStartTimestamp);
43
+ const positionsToAppend = await this.preparePositionsFromCisStops(tripsWithCisStops, nowFormatted, now);
44
+ positions.push(...positionsToAppend);
45
+ // Save cis stops first to later propagate platform codes to departure boards
46
+ await this.saveStops(stops);
38
47
  // At this point we want to send ACK to rabbit and let the rest of the processing to be done in the background
39
48
  await this.sendDataToUpdateGtfsTripId(inserted, positions, messageProperties?.timestamp);
40
49
  await this.sendDataToUpdateDelay(updated, positions, messageProperties?.timestamp);
41
- // Save cis stops to later propagate platform codes to departure boards
42
- await this.saveStops(stops);
43
50
  }
44
51
  async saveStops(stops) {
45
52
  try {
@@ -118,6 +125,35 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
118
125
  }
119
126
  }
120
127
  }
128
+ async preparePositionsFromCisStops(tripsWithCisStops, tsText, ts) {
129
+ if (!tripsWithCisStops?.size) {
130
+ return [];
131
+ }
132
+ const newPositions = [];
133
+ const cisList = new Set();
134
+ const cisToTrips = new Map();
135
+ for (const [tripId, cisStop] of tripsWithCisStops.entries()) {
136
+ cisList.add(cisStop);
137
+ cisToTrips.set(cisStop, (cisToTrips.get(cisStop) ?? []).concat([tripId]));
138
+ }
139
+ const rawCisStops = await this.ropidGTFSCisStopsModel.find({
140
+ where: {
141
+ cis: { [sequelize_1.Op.in]: Array.from(cisList) },
142
+ id: { [sequelize_1.Op.like]: `%/301` }, // We want only asw-code like XYZ/301
143
+ },
144
+ attributes: ["cis", "lat", "lon"],
145
+ raw: true,
146
+ });
147
+ for (const cisStop of rawCisStops) {
148
+ if (cisList.has(cisStop.cis) && cisToTrips.has(cisStop.cis)) {
149
+ cisList.delete(cisStop.cis); // prevents to create positions for the same cis stop returning multiple rows
150
+ for (const tripId of cisToTrips.get(cisStop.cis)) {
151
+ newPositions.push(this.messageTransformation.positionWithCisStopCoords(tripId, cisStop.lat, cisStop.lon, tsText, ts));
152
+ }
153
+ }
154
+ }
155
+ return newPositions;
156
+ }
121
157
  async getTripDataAndSendToUpdateDelay(chunk, positions, firstMessageCreatedAt) {
122
158
  try {
123
159
  const updatedTrips = await this.tripsRepository.findAllAssocTripIds(chunk);
@@ -1 +1 @@
1
- {"version":3,"file":"SaveDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SaveDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.ts"],"names":[],"mappings":";;;;;;AAIA,wEAAqE;AACrE,mEAAuF;AACvF,2FAAqF;AACrF,2EAA6E;AAC7E,6EAA8F;AAE9F,wEAAqE;AACrE,oEAAiE;AACjE,qFAA6D;AAG7D,qEAA4E;AAC5E,0FAAuF;AACvF,0FAA+E;AAC/E,mEAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sBAA8B;IAWhE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAXP,cAAS,GAAG,cAAc,CAAC;QAC3B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,iDAA4B,CAAC;QAUlD,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,qBAAqB,GAAG,IAAI,mDAAwB,EAAE,CAAC;QAC5D,IAAI,CAAC,sBAAsB,GAAG,IAAI,+CAAsB,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,gCAA0B,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;IAChF,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,iBAAqC;QACjF,MAAM,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAEhD,MAAM,GAAG,GAAG,mDAAwB,CAAC,mBAAmB,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,mDAAwB,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAEhF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/G,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CACpD,KAAK;QACL,sGAAsG;QACtG,mFAAmF;QACnF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACtB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,iBAAiB,CAAC;aAC1C,MAAM,CAAC,YAAY,CAAC,EACzB,IAAI,CACP,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,qBAAW,CAAC,0BAA0B,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAEvG,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,iBAAiB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QACxG,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QAErC,6EAA6E;QAC7E,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE5B,8GAA8G;QAC9G,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACzF,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAoB;QACxC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAC/G,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACpC,aAA4C,EAC5C,SAA0C,EAC1C,qBAA8B;QAE9B,IAAI,CAAC;YACD,sCAAsC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;gBACvE,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC5D,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1C,OAAO,GAAG,CAAC,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,MAAM,8BAAY,CAAC,qBAAqB,CACpC,IAAI,CAAC,WAAW,EAChB,kBAAkB,EAClB;oBACI,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBACrF,EACD;oBACI,SAAS,EAAE,qBAAqB;iBACnC,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,iDAAiD,EACjD,gBAAgB,CAAC,IAAI,EACrB,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,CAAC,SAAS,CACjB,CACJ,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAC/B,YAA0C,EAC1C,SAA0C,EAC1C,qBAA8B;QAE9B,IAAI,CAAC;YACD,yFAAyF;YACzF,MAAM,UAAU,GAA6B,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAExF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC3D,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpF,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAe,EAAE,CAAC;YAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACrB,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC3B,GAAG,EAAE,CAAC;gBACV,CAAC;YACL,CAAC;YACD,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC;YACvG,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,0CAA0C,EAC1C,gBAAgB,CAAC,IAAI,EACrB,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,CAAC,SAAS,CACjB,CACJ,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,4BAA4B,CACtC,iBAAsC,EACtC,MAAc,EACd,EAAiB;QAEjB,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAoC,EAAE,CAAC;QAEzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC/C,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YACvD,KAAK,EAAE;gBACH,GAAG,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACrC,EAAE,EAAE,EAAE,CAAC,cAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,qCAAqC;aACpE;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YACjC,GAAG,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,6EAA6E;gBAC1G,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAE,EAAE,CAAC;oBAChD,YAAY,CAAC,IAAI,CACb,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CACrG,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,+BAA+B,CACzC,KAAe,EACf,SAA0C,EAC1C,qBAA8B;QAE9B,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3E,MAAM,8BAAY,CAAC,qBAAqB,CACpC,IAAI,CAAC,WAAW,EAChB,aAAa,EACb;gBACI,YAAY;gBACZ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC/E,EACD;gBACI,SAAS,EAAE,qBAAqB;aACnC,CACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,0CAA0C,EAC1C,gBAAgB,CAAC,IAAI,EACrB,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,CAAC,SAAS,CACjB,CACJ,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AA1OD,4CA0OC"}
@@ -1,18 +1,20 @@
1
1
  import { IMpvPositionContent } from "../../../../../schema-definitions/vehicle-positions/interfaces/IMpvMessageInterfaces";
2
2
  import { BaseTransformation, ITransformation } from "@golemio/core/dist/integration-engine/transformations";
3
- import { Moment } from "@golemio/core/dist/shared/moment-timezone";
4
- import { ITransformationElement, ITransformationResult } from "../interfaces/TransformationInterfaces";
3
+ import moment, { Moment } from "@golemio/core/dist/shared/moment-timezone";
4
+ import { IPositionTransformationResult, ITransformationElement, ITransformationResult } from "../interfaces/TransformationInterfaces";
5
5
  export declare class MpvMessageTransformation extends BaseTransformation implements ITransformation {
6
6
  private static ORIGIN_TIME_FORMAT;
7
- name: string;
7
+ private static readonly CIS_PLATFORM_ELIGIBLE;
8
8
  private config;
9
9
  private skipAgencyNames;
10
+ private trainBeforeTrackMinutesInterval;
11
+ name: string;
10
12
  constructor();
11
13
  /**
12
14
  * Overrides BaseTransformation::transform
13
15
  */
14
16
  transform: (data: IMpvPositionContent | IMpvPositionContent[]) => Promise<ITransformationResult>;
15
- protected transformElement: (element: IMpvPositionContent) => Promise<ITransformationElement | null>;
17
+ protected transformElement: (element: IMpvPositionContent) => ITransformationElement | null;
16
18
  /**
17
19
  * Deduce UTC timestamp of start of trip and UTC timestamp of current position
18
20
  *
@@ -20,10 +22,13 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
20
22
  * @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
21
23
  * @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
22
24
  */
23
- protected deduceTimestamps: (firstStopXML: any, positionTimestampXML: string) => Promise<{
25
+ protected deduceTimestamps(firstStopXML: any, positionTimestampXML: string | null): {
24
26
  startTimestamp: Moment;
25
27
  positionTimestamp: Moment;
26
- }>;
28
+ };
29
+ static currentTimeInPrague(): moment.Moment;
30
+ static currentTimeInPragueFormatted(now?: moment.Moment): string;
31
+ private isCisPlatformEligible;
27
32
  /**
28
33
  * Returns -1 if start hour is 12-23 and now is 0-12, 1 if start hour is 18-23 and now 0-6, else 0
29
34
  *
@@ -33,6 +38,8 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
33
38
  */
34
39
  private checkMidnight;
35
40
  private isBlacklistedAgency;
41
+ private isTrainBeforeTrackWithPlatforms;
42
+ private determinePrimaryKey;
36
43
  /**
37
44
  * Fix source negative bearing value due to overflow by adding 256
38
45
  *
@@ -40,11 +47,8 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
40
47
  * @returns {number}
41
48
  */
42
49
  private fixSourceNegativeBearing;
43
- /**
44
- * Format input stop id from DPP agency (XXX000Y to XXX/Y) to ASW id
45
- *
46
- * @param {string} stopId
47
- * @returns {stringList}
48
- */
49
- private formatASWStopId;
50
+ private extractStopsForTrain;
51
+ positionWithCisStopCoords(id: string, lat: string, lng: string, cpoz: string, positionTimestamp: moment.Moment): IPositionTransformationResult;
52
+ private determinePosition;
53
+ private determineTrip;
50
54
  }
@@ -23,6 +23,7 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
23
23
  constructor() {
24
24
  super();
25
25
  this.skipAgencyNames = [];
26
+ this.trainBeforeTrackMinutesInterval = [-5, 20];
26
27
  /**
27
28
  * Overrides BaseTransformation::transform
28
29
  */
@@ -33,51 +34,71 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
33
34
  positions: [],
34
35
  stops: [],
35
36
  trips: [],
37
+ tripsWithCisStops: new Map(),
36
38
  };
37
39
  if (!Array.isArray(data))
38
40
  data = [data];
39
41
  for (const element of data) {
40
- const elemRes = await this.transformElement(element);
41
- if (elemRes) {
42
+ const elemRes = this.transformElement(element);
43
+ if (!elemRes) {
44
+ continue;
45
+ }
46
+ if (elemRes.position) {
42
47
  res.positions.push(elemRes.position);
48
+ }
49
+ if (elemRes.trip) {
43
50
  trips.set(elemRes.trip.id, elemRes.trip);
44
- for (const [key, value] of elemRes.stops) {
45
- stops.set(key, value);
46
- }
51
+ }
52
+ if (elemRes.tripToCis && elemRes.trip) {
53
+ res.tripsWithCisStops.set(elemRes.trip.id, elemRes.tripToCis);
54
+ }
55
+ for (const [key, value] of elemRes.stops) {
56
+ stops.set(key, value);
47
57
  }
48
58
  }
49
59
  res.trips = Array.from(trips.values());
50
60
  res.stops = Array.from(stops.values());
51
61
  return res;
52
62
  };
53
- this.transformElement = async (element) => {
63
+ this.transformElement = (element) => {
54
64
  const attributes = element.$;
65
+ if (this.isBlacklistedAgency(attributes.dopr)) {
66
+ return null;
67
+ }
68
+ if (this.isTrainBeforeTrackWithPlatforms(attributes, element.zast)) {
69
+ const { startTimestamp } = this.deduceTimestamps(element.zast[0], null);
70
+ const id = this.determinePrimaryKey(attributes, startTimestamp.utc().format());
71
+ const stops = this.extractStopsForTrain(id, element.zast);
72
+ const firstStop = Array.from(stops.values()).at(0);
73
+ return {
74
+ position: null,
75
+ stops,
76
+ trip: this.determineTrip(attributes, parseInt(attributes.spoj, 10), id, startTimestamp, element.zast[0]),
77
+ tripToCis: firstStop?.cis_stop_group_id ?? null,
78
+ };
79
+ }
55
80
  // Trips with null cpoz (origin time) and falsy or "false" zrus (cancellation) attributes are excluded
56
81
  let hasInvalidAttributes = !attributes.cpoz && (!attributes.zrus || attributes.zrus === "false");
57
82
  // Trips without the CIS trip number are excluded
58
83
  hasInvalidAttributes ||= typeof attributes.spoj === "undefined" || attributes.spoj === "";
59
84
  // Canceled trips with no lat or lng are accepted because we try to later get the coords from the context if possible
60
85
  hasInvalidAttributes ||= attributes.zrus !== "true" && (!attributes.lat || !attributes.lng);
61
- if (this.isBlacklistedAgency(attributes.dopr) || hasInvalidAttributes) {
86
+ const cisTripNumber = parseInt(attributes.spoj, 10);
87
+ // wrong spoj number, no chance to continue
88
+ hasInvalidAttributes ||= isNaN(cisTripNumber);
89
+ if (hasInvalidAttributes) {
62
90
  return null;
63
91
  }
64
92
  attributes.lin = attributes.lin || "none";
65
93
  attributes.alias = attributes.alias || "none";
66
- attributes.cpoz = attributes.cpoz || moment_timezone_1.default.tz("Europe/Prague").format(MpvMessageTransformation.ORIGIN_TIME_FORMAT);
67
- const cisTripNumber = parseInt(attributes.spoj, 10);
68
- if (isNaN(cisTripNumber)) {
69
- return null;
70
- }
94
+ attributes.cpoz = attributes.cpoz || MpvMessageTransformation.currentTimeInPragueFormatted();
71
95
  const stops = element.zast;
72
- const { startTimestamp, positionTimestamp } = await this.deduceTimestamps(stops[0], attributes.cpoz);
96
+ const { startTimestamp, positionTimestamp } = this.deduceTimestamps(stops[0], attributes.cpoz);
73
97
  // filter out position with future time (set to be far than 5 minutes from now)
74
98
  if ((0, moment_timezone_1.default)(positionTimestamp).isAfter((0, moment_timezone_1.default)().add(5, "minutes"))) {
75
99
  return null;
76
100
  }
77
- // primary key for t = 0 (vehicle type is train) -> start_timestamp, cis_number
78
- // primary key for t != 0 -> start_timestamp, cis_id, cis_short_name, cis_number
79
- const primaryKeySuffix = attributes.t === "0" ? `_${attributes.spoj}` : `_${attributes.lin}` + `_${attributes.alias}` + `_${attributes.spoj}`;
80
- const primaryKey = startTimestamp.utc().format() + primaryKeySuffix;
101
+ const primaryKey = this.determinePrimaryKey(attributes, startTimestamp.utc().format());
81
102
  /*
82
103
  MPV route types:
83
104
 
@@ -100,50 +121,11 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
100
121
  Ostatní: 17
101
122
  Trolejbus: 18
102
123
  */
103
- const bearing = attributes.azimut;
104
- const speed = attributes.rychl;
105
- const aswLastStopId = null;
106
- const cisLastStopId = attributes.zast;
107
- let res = {
108
- position: {
109
- asw_last_stop_id: aswLastStopId ? this.formatASWStopId(aswLastStopId) : null,
110
- bearing: bearing ? this.fixSourceNegativeBearing(parseInt(bearing, 10)) : null,
111
- cis_last_stop_id: cisLastStopId ? parseInt(cisLastStopId, 10) : null,
112
- cis_last_stop_sequence: null,
113
- delay_stop_arrival: attributes.zpoz_prij ? parseInt(attributes.zpoz_prij, 10) : null,
114
- delay_stop_departure: attributes.zpoz_odj ? parseInt(attributes.zpoz_odj, 10) : null,
115
- is_canceled: attributes.zrus === "true",
116
- lat: attributes.lat ? parseFloat(attributes.lat) : null,
117
- lng: attributes.lng ? parseFloat(attributes.lng) : null,
118
- origin_time: attributes.cpoz,
119
- origin_timestamp: positionTimestamp.toDate(),
120
- speed: speed ? parseInt(speed, 10) : null,
121
- state_position: const_1.StatePositionEnum.UNKNOWN,
122
- state_process: const_1.StateProcessEnum.INPUT,
123
- is_tracked: attributes.sled === PositionTrackingEnum.TRACKING && !!attributes.lat && !!attributes.lng,
124
- trips_id: primaryKey,
125
- },
124
+ const res = {
125
+ position: this.determinePosition(attributes, primaryKey, positionTimestamp),
126
126
  stops: new Map(),
127
- trip: {
128
- agency_name_real: attributes.doprSkut ? attributes.doprSkut : null,
129
- agency_name_scheduled: attributes.dopr ? attributes.dopr : null,
130
- cis_line_id: attributes.lin,
131
- cis_line_short_name: attributes.alias,
132
- cis_trip_number: cisTripNumber,
133
- id: primaryKey,
134
- is_canceled: attributes.zrus === "true",
135
- origin_route_name: attributes.kmenl ?? null,
136
- run_number: attributes.po !== undefined ? parseInt(attributes.po, 10) : null,
137
- start_asw_stop_id: stops[0].$.asw ?? null,
138
- start_cis_stop_id: stops[0].$.zast ? parseInt(stops[0].$.zast, 10) : null,
139
- start_cis_stop_platform_code: stops[0].$.stan ?? null,
140
- start_time: startTimestamp.tz("Europe/Prague").format("HH:mm"),
141
- start_timestamp: startTimestamp.toDate(),
142
- vehicle_registration_number: attributes.vuzevc ? parseInt(attributes.vuzevc, 10) : null,
143
- vehicle_type_id: attributes.t ? parseInt(attributes.t, 10) : null,
144
- wheelchair_accessible: attributes.np === "true",
145
- provider_source_type: ProviderSourceTypeEnum_1.ProviderSourceTypeEnum.Http,
146
- },
127
+ trip: this.determineTrip(attributes, cisTripNumber, primaryKey, startTimestamp, element.zast[0]),
128
+ tripToCis: null,
147
129
  };
148
130
  for (let i = 0; i < stops.length; i++) {
149
131
  const stop = stops[i];
@@ -157,7 +139,7 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
157
139
  (stop.$.zpoz_typ_prij && parseInt(stop.$.zpoz_typ_prij, 10) === 3))) {
158
140
  res.position.cis_last_stop_sequence = cisStopSequence;
159
141
  }
160
- if (res.trip.vehicle_type_id === RouteTypeEnums_1.MPVRouteTypesEnum.UNKNOWN || res.trip.vehicle_type_id === RouteTypeEnums_1.MPVRouteTypesEnum.TRAIN) {
142
+ if (this.isCisPlatformEligible(res.trip)) {
161
143
  res.stops.set(`${primaryKey}_${stop.$.zast}`, {
162
144
  rt_trip_id: primaryKey,
163
145
  cis_stop_group_id: parseInt(stop.$.zast, 10),
@@ -167,40 +149,6 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
167
149
  }
168
150
  return res;
169
151
  };
170
- /**
171
- * Deduce UTC timestamp of start of trip and UTC timestamp of current position
172
- *
173
- * @param {any} firstStopXML - parsed object of first stop
174
- * @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
175
- * @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
176
- */
177
- this.deduceTimestamps = async (firstStopXML, positionTimestampXML) => {
178
- const now = moment_timezone_1.default.tz("Europe/Prague");
179
- let isOverMidnight = 0;
180
- // creating startDate and timestamp from zast[0].prij and cpoz
181
- const startTimestamp = now.clone();
182
- let startDatePlain = firstStopXML.$.prij || firstStopXML.$.odj;
183
- startDatePlain = startDatePlain.split(":");
184
- // eslint-disable-next-line prettier/prettier
185
- startTimestamp.hour(parseInt(startDatePlain[0], 10)).minute(parseInt(startDatePlain[1], 10)).second(0).millisecond(0);
186
- // midnight checking
187
- isOverMidnight = this.checkMidnight(now, startTimestamp); // returns -1, 1 or 0
188
- startTimestamp.add(isOverMidnight, "d");
189
- const positionTimestamp = now.clone();
190
- const timestampPlain = positionTimestampXML.split(":");
191
- positionTimestamp
192
- .hour(parseInt(timestampPlain[0], 10))
193
- .minute(parseInt(timestampPlain[1], 10))
194
- .second(parseInt(timestampPlain[2], 10))
195
- .millisecond(0);
196
- // midnight checking
197
- isOverMidnight = this.checkMidnight(now, positionTimestamp); // returns -1, 1 or 0
198
- positionTimestamp.add(isOverMidnight, "d");
199
- return {
200
- startTimestamp,
201
- positionTimestamp,
202
- };
203
- };
204
152
  /**
205
153
  * Returns -1 if start hour is 12-23 and now is 0-12, 1 if start hour is 18-23 and now 0-6, else 0
206
154
  *
@@ -230,10 +178,108 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
230
178
  this.skipAgencyNames = this.config
231
179
  .getValue("module.pid.vehicle-positions.mpvIntegration.skipAgencyNames", DPPUtils_1.default.DPP_AGENCY_NAME)
232
180
  .split(",");
181
+ this.trainBeforeTrackMinutesInterval = this.config
182
+ .getValue("module.pid.vehicle-positions.mpvIntegration.trainBeforeTrackMinutesInterval", "-5,35")
183
+ .split(",")
184
+ .map((s) => parseInt(s, 10));
185
+ }
186
+ /**
187
+ * Deduce UTC timestamp of start of trip and UTC timestamp of current position
188
+ *
189
+ * @param {any} firstStopXML - parsed object of first stop
190
+ * @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
191
+ * @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
192
+ */
193
+ deduceTimestamps(firstStopXML, positionTimestampXML) {
194
+ const now = moment_timezone_1.default.tz("Europe/Prague");
195
+ let isOverMidnight = 0;
196
+ // creating startDate and timestamp from zast[0].prij and cpoz
197
+ const startTimestamp = now.clone();
198
+ let startDatePlain = firstStopXML.$.prij || firstStopXML.$.odj;
199
+ startDatePlain = startDatePlain.split(":");
200
+ // eslint-disable-next-line prettier/prettier
201
+ startTimestamp.hour(parseInt(startDatePlain[0], 10)).minute(parseInt(startDatePlain[1], 10)).second(0).millisecond(0);
202
+ // midnight checking
203
+ isOverMidnight = this.checkMidnight(now, startTimestamp); // returns -1, 1 or 0
204
+ startTimestamp.add(isOverMidnight, "d");
205
+ if (positionTimestampXML == null) {
206
+ return { startTimestamp, positionTimestamp: now.clone() };
207
+ }
208
+ const positionTimestamp = now.clone();
209
+ const timestampPlain = positionTimestampXML.split(":");
210
+ positionTimestamp
211
+ .hour(parseInt(timestampPlain[0], 10))
212
+ .minute(parseInt(timestampPlain[1], 10))
213
+ .second(parseInt(timestampPlain[2], 10))
214
+ .millisecond(0);
215
+ // midnight checking
216
+ isOverMidnight = this.checkMidnight(now, positionTimestamp); // returns -1, 1 or 0
217
+ positionTimestamp.add(isOverMidnight, "d");
218
+ return {
219
+ startTimestamp,
220
+ positionTimestamp,
221
+ };
222
+ }
223
+ static currentTimeInPrague() {
224
+ return moment_timezone_1.default.tz("Europe/Prague");
225
+ }
226
+ static currentTimeInPragueFormatted(now) {
227
+ return (now ?? moment_timezone_1.default.tz("Europe/Prague")).format(MpvMessageTransformation.ORIGIN_TIME_FORMAT);
228
+ }
229
+ isCisPlatformEligible(trip) {
230
+ if (trip?.vehicle_type_id == null) {
231
+ return false;
232
+ }
233
+ return MpvMessageTransformation.CIS_PLATFORM_ELIGIBLE.includes(trip.vehicle_type_id);
233
234
  }
234
235
  isBlacklistedAgency(agency) {
235
236
  return agency && this.skipAgencyNames.includes(agency);
236
237
  }
238
+ isTrainBeforeTrackWithPlatforms(attrs, zast) {
239
+ if (attrs.lat || attrs.lng || attrs.zrus || attrs.cpoz || isNaN(parseInt(attrs.spoj, 10)) || !Array.isArray(zast)) {
240
+ // Should the message has any of these, we skip it here (not processing in this specific flow):
241
+ // - has lat/lng OR
242
+ // - has information about being cancelled (zrus) OR
243
+ // - has time of position (cpoz) OR
244
+ // - has no information about what train-identifier it is (spoj)
245
+ // - has not list of stops (zast)
246
+ return false;
247
+ }
248
+ // further code accepts only unknown or train transport
249
+ const isValidRouteType = this.isCisPlatformEligible({ vehicle_type_id: parseInt(attrs.t || "0") });
250
+ // and accepts only <zast> XML with some "stan" (platform code) information
251
+ const hasStopWithPlatform = zast.some((z) => z.$.stan?.length);
252
+ // all stops have to be in CZ cis number system
253
+ const wrongStopFromNonCzCis = zast.some((z) => {
254
+ return Number(z.$.zast) < 5400000 || Number(z.$.zast) >= 5500000;
255
+ });
256
+ if (!isValidRouteType || !hasStopWithPlatform || wrongStopFromNonCzCis) {
257
+ return false;
258
+ }
259
+ const { startTimestamp } = this.deduceTimestamps(zast[0], null);
260
+ const departureInterval = [
261
+ // allow planned departure X minutes in past
262
+ (0, moment_timezone_1.default)().subtract(Math.abs(this.trainBeforeTrackMinutesInterval[0]), "minutes"),
263
+ // allow up to Y minutes into future for valid trains
264
+ (0, moment_timezone_1.default)().add(this.trainBeforeTrackMinutesInterval[1], "minutes"),
265
+ ];
266
+ if (startTimestamp.isBetween(departureInterval[0], departureInterval[1])) {
267
+ // Seems the train has not yet departed onto the trip, probably good to make it into a position
268
+ // first stop has departure time inside interval of X minutes back till now+Y minutes <now-Xminutes ... now+Ymin>
269
+ return true;
270
+ }
271
+ // For trains that are already on the trip = due to arriving from different / far away public
272
+ // transport network, and we don't receive position(s) yet, AND we won't be creating fake positions,
273
+ // because the vehicle is moving in reality, but MPVNet is not sending us the messages with lat/lng of it yet
274
+ return false;
275
+ }
276
+ determinePrimaryKey(attributes, prefix) {
277
+ // primary key for t = 0 (vehicle type is train) -> start_timestamp, cis_number
278
+ // primary key for t != 0 -> start_timestamp, cis_id, cis_short_name, cis_number
279
+ return attributes.t === "0"
280
+ ? `${prefix}_${attributes.spoj}`
281
+ : `${prefix}_${attributes.lin}_${attributes.alias}_${attributes.spoj}`;
282
+ }
237
283
  /**
238
284
  * Fix source negative bearing value due to overflow by adding 256
239
285
  *
@@ -243,19 +289,72 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
243
289
  fixSourceNegativeBearing(bearing) {
244
290
  return bearing < 0 ? bearing + 256 : bearing;
245
291
  }
246
- /**
247
- * Format input stop id from DPP agency (XXX000Y to XXX/Y) to ASW id
248
- *
249
- * @param {string} stopId
250
- * @returns {stringList}
251
- */
252
- formatASWStopId(stopId) {
253
- const fixedRightPadFactor = 10000;
254
- const aswParsedStopNodeId = Math.floor(parseInt(stopId, 10) / fixedRightPadFactor);
255
- const aswParsedStopPostId = parseInt(stopId, 10) - aswParsedStopNodeId * fixedRightPadFactor;
256
- return aswParsedStopNodeId + "/" + aswParsedStopPostId;
292
+ extractStopsForTrain(id, stopsXML) {
293
+ const stops = new Map();
294
+ for (const stop of stopsXML) {
295
+ if (!stop.$.zast || !stop.$.stan) {
296
+ continue;
297
+ }
298
+ stops.set(`${id}_${stop.$.zast}`, {
299
+ rt_trip_id: id,
300
+ cis_stop_group_id: parseInt(stop.$.zast, 10),
301
+ cis_stop_platform_code: MpvStopParser_1.MpvStopParser.parsePlatformCode(stop),
302
+ });
303
+ }
304
+ return stops;
305
+ }
306
+ positionWithCisStopCoords(id, lat, lng, cpoz, positionTimestamp) {
307
+ return this.determinePosition({ lat, lng, cpoz }, id, positionTimestamp);
308
+ }
309
+ determinePosition(attributes, id, positionTimestamp) {
310
+ const cisLastStopId = attributes.zast;
311
+ const speed = attributes.rychl;
312
+ const bearing = attributes.azimut;
313
+ return {
314
+ asw_last_stop_id: null,
315
+ bearing: bearing ? this.fixSourceNegativeBearing(parseInt(bearing, 10)) : null,
316
+ cis_last_stop_id: cisLastStopId ? parseInt(cisLastStopId, 10) : null,
317
+ cis_last_stop_sequence: null,
318
+ delay_stop_arrival: attributes.zpoz_prij ? parseInt(attributes.zpoz_prij, 10) : null,
319
+ delay_stop_departure: attributes.zpoz_odj ? parseInt(attributes.zpoz_odj, 10) : null,
320
+ is_canceled: attributes.zrus === "true",
321
+ lat: attributes.lat ? parseFloat(attributes.lat) : null,
322
+ lng: attributes.lng ? parseFloat(attributes.lng) : null,
323
+ origin_time: attributes.cpoz || positionTimestamp.format(MpvMessageTransformation.ORIGIN_TIME_FORMAT),
324
+ origin_timestamp: positionTimestamp.toDate(),
325
+ speed: speed ? parseInt(speed, 10) : null,
326
+ state_position: const_1.StatePositionEnum.UNKNOWN,
327
+ state_process: const_1.StateProcessEnum.INPUT,
328
+ is_tracked: attributes.sled === PositionTrackingEnum.TRACKING && !!attributes.lat && !!attributes.lng,
329
+ trips_id: id,
330
+ };
331
+ }
332
+ determineTrip(attributes, cisTripNumber, id, start, zastXML) {
333
+ if (isNaN(cisTripNumber))
334
+ return null;
335
+ return {
336
+ agency_name_real: attributes.doprSkut ? attributes.doprSkut : null,
337
+ agency_name_scheduled: attributes.dopr ? attributes.dopr : null,
338
+ cis_line_id: attributes.lin || "none",
339
+ cis_line_short_name: attributes.alias || "none",
340
+ cis_trip_number: cisTripNumber,
341
+ id,
342
+ is_canceled: attributes.zrus === "true",
343
+ origin_route_name: attributes.kmenl ?? null,
344
+ run_number: attributes.po !== undefined ? parseInt(attributes.po, 10) : null,
345
+ start_asw_stop_id: zastXML.$.asw ?? null,
346
+ start_cis_stop_id: zastXML.$.zast ? parseInt(zastXML.$.zast, 10) : null,
347
+ start_cis_stop_platform_code: zastXML.$.stan ?? null,
348
+ start_time: start.tz("Europe/Prague").format("HH:mm"),
349
+ start_timestamp: start.toDate(),
350
+ vehicle_registration_number: attributes.vuzevc ? parseInt(attributes.vuzevc, 10) : null,
351
+ vehicle_type_id: attributes.t ? parseInt(attributes.t, 10) : null,
352
+ wheelchair_accessible: attributes.np === "true",
353
+ provider_source_type: ProviderSourceTypeEnum_1.ProviderSourceTypeEnum.Http,
354
+ };
257
355
  }
258
356
  }
259
357
  exports.MpvMessageTransformation = MpvMessageTransformation;
260
358
  MpvMessageTransformation.ORIGIN_TIME_FORMAT = "HH:mm:ss";
359
+ MpvMessageTransformation.CIS_PLATFORM_ELIGIBLE = [RouteTypeEnums_1.MPVRouteTypesEnum.UNKNOWN, RouteTypeEnums_1.MPVRouteTypesEnum.TRAIN];
261
360
  //# sourceMappingURL=MpvMessageTransformation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MpvMessageTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MpvMessageTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "5.3.0-rc.2228022903",
3
+ "version": "5.3.1-dev.2228047453",
4
4
  "description": "Golemio PID Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -77,7 +77,7 @@
77
77
  "@golemio/core": "^3.0.1-dev.2 || ^3.0.0 || ^2.0.1"
78
78
  },
79
79
  "dependencies": {
80
- "@golemio/ovapi-gtfs-realtime-bindings": "1.2.5",
80
+ "@golemio/ovapi-gtfs-realtime-bindings": "1.2.6-dev.2214778812",
81
81
  "@turf/turf": "^6.5.0",
82
82
  "cheap-ruler": "^3.0.2",
83
83
  "csv-parser": "^3.0.0",