@golemio/pid 2.3.3-dev.688627192 → 2.3.3

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.
@@ -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', '20221108115411-metro-runs-delay-origin-type-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', '20221108115411-metro-runs-delay-origin-type-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,5 @@
1
+ ALTER TABLE vehiclepositions_metro_runs_messages ALTER COLUMN delay_origin TYPE smallint
2
+ USING
3
+ CASE WHEN delay_origin <= 0 THEN greatest(delay_origin, -32768)
4
+ ELSE least(delay_origin, 32767)
5
+ END;
@@ -0,0 +1 @@
1
+ ALTER TABLE vehiclepositions_metro_runs_messages ALTER COLUMN delay_origin TYPE int;
@@ -20,6 +20,7 @@ const RunTripsRedisRepository_1 = require("./data-access/RunTripsRedisRepository
20
20
  const MetroRunsMessageProcessingTransformation_1 = require("./transformations/MetroRunsMessageProcessingTransformation");
21
21
  const MetroTransformedRunsSchema_1 = require("./schema/MetroTransformedRunsSchema");
22
22
  const MetroRouteHelper_1 = require("./helpers/MetroRouteHelper");
23
+ const MetroMessageFilter_1 = require("./helpers/MetroMessageFilter");
23
24
  class ProcessMetroRunsMessagesTask extends integration_engine_1.AbstractTask {
24
25
  constructor(queuePrefix) {
25
26
  super(queuePrefix);
@@ -40,8 +41,12 @@ class ProcessMetroRunsMessagesTask extends integration_engine_1.AbstractTask {
40
41
  if (routeName !== MetroRouteHelper_1.MetroRouteName.LINE_A) {
41
42
  return;
42
43
  }
43
- const gpsData = yield this.railtrackGPSRepository.findCoordinates(routeName, messages.map((message) => message.track_id));
44
- for (const message of messages) {
44
+ const { filteredMessages, trackIds } = MetroMessageFilter_1.MetroMessageFilter.getValidMessagesWithTrackIds(messages);
45
+ if (filteredMessages.length === 0) {
46
+ return;
47
+ }
48
+ const gpsData = yield this.railtrackGPSRepository.findCoordinates(routeName, trackIds);
49
+ for (const message of filteredMessages) {
45
50
  yield this.processMessage(message, gpsData);
46
51
  }
47
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessMetroRunsMessagesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunsMessagesTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAA2F;AAC3F,2EAAoE;AACpE,2FAA0D;AAG1D,wIAA6H;AAC7H,4CAIsC;AAEtC,wGAG+E;AAC/E,mFAAgF;AAChF,yHAAsH;AAEtH,oFAA2F;AAC3F,iEAA4D;AAE5D,MAAa,4BAA6B,SAAQ,iCAA4C;IAa1F,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAbP,cAAS,GAAG,yBAAyB,CAAC;QACtC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACxC,WAAM,GAAG,iEAAoC,CAAC;QAY1D,IAAI,CAAC,wBAAwB,GAAG,IAAI,mFAAwC,EAAE,CAAC;QAC/E,IAAI,CAAC,sBAAsB,GAAG,IAAI,yDAA2B,EAAE,CAAC;QAChE,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAA8B,EAAE,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,mCAA0B,EAAE,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,kCAAyB,EAAE,CAAC;QACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,iDAAuB,EAAE,CAAC;QAE7D,IAAI,CAAC,kBAAkB,GAAG,qDAAyB,CAAC,MAAM,CACtD,2CAAe,CAAC,KAAK,EACrB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,uBAAuB,CAC/B,CAAC;IACN,CAAC;IAEe,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAkC;;YAC3E,0DAA0D;YAC1D,IAAI,SAAS,KAAK,iCAAc,CAAC,MAAM,EAAE;gBACrC,OAAO;aACV;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAC7D,SAAS,EACT,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC9C,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC/C;QACL,CAAC;KAAA;IAEa,cAAc,CAAC,OAAgC,EAAE,OAA2C;;YACtG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;aACV;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClG,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,aAAG,CAAC,OAAO,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC9F,OAAO;aACV;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/F,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,gDAAgD;gBAChD,MAAM,iCAAY,CAAC,qBAAqB,CACpC,GAAG,2BAAM,CAAC,oBAAoB,IAAI,oCAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EACvE,aAAa,EACb,QAAQ,CACX,CAAC;aACL;QACL,CAAC;KAAA;CACJ;AArED,oEAqEC"}
1
+ {"version":3,"file":"ProcessMetroRunsMessagesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunsMessagesTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAA2F;AAC3F,2EAAoE;AACpE,2FAA0D;AAG1D,wIAA6H;AAC7H,4CAIsC;AAEtC,wGAG+E;AAC/E,mFAAgF;AAChF,yHAAsH;AAEtH,oFAA2F;AAC3F,iEAA4D;AAC5D,qEAAkE;AAElE,MAAa,4BAA6B,SAAQ,iCAA4C;IAa1F,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAbP,cAAS,GAAG,yBAAyB,CAAC;QACtC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACxC,WAAM,GAAG,iEAAoC,CAAC;QAY1D,IAAI,CAAC,wBAAwB,GAAG,IAAI,mFAAwC,EAAE,CAAC;QAC/E,IAAI,CAAC,sBAAsB,GAAG,IAAI,yDAA2B,EAAE,CAAC;QAChE,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAA8B,EAAE,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,mCAA0B,EAAE,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,kCAAyB,EAAE,CAAC;QACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,iDAAuB,EAAE,CAAC;QAE7D,IAAI,CAAC,kBAAkB,GAAG,qDAAyB,CAAC,MAAM,CACtD,2CAAe,CAAC,KAAK,EACrB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,uBAAuB,CAC/B,CAAC;IACN,CAAC;IAEe,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAkC;;YAC3E,0DAA0D;YAC1D,IAAI,SAAS,KAAK,iCAAc,CAAC,MAAM,EAAE;gBACrC,OAAO;aACV;YAED,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,uCAAkB,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YACjG,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,OAAO;aACV;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEvF,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC/C;QACL,CAAC;KAAA;IAEa,cAAc,CAAC,OAAgC,EAAE,OAA2C;;YACtG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;aACV;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClG,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,aAAG,CAAC,OAAO,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC9F,OAAO;aACV;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/F,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,gDAAgD;gBAChD,MAAM,iCAAY,CAAC,qBAAqB,CACpC,GAAG,2BAAM,CAAC,oBAAoB,IAAI,oCAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EACvE,aAAa,EACb,QAAQ,CACX,CAAC;aACL;QACL,CAAC;KAAA;CACJ;AAvED,oEAuEC"}
@@ -0,0 +1,11 @@
1
+ import { IMetroRunsMessagesModel } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/IMetroRunsMessagesModel";
2
+ interface IValidMessagesWithTrackIdsOutput {
3
+ filteredMessages: IMetroRunsMessagesModel[];
4
+ trackIds: string[];
5
+ }
6
+ export declare class MetroMessageFilter {
7
+ private static DELAY_ORIGIN_RANGE_MIN;
8
+ private static DELAY_ORIGIN_RANGE_MAX;
9
+ static getValidMessagesWithTrackIds(messages: IMetroRunsMessagesModel[]): IValidMessagesWithTrackIdsOutput;
10
+ }
11
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetroMessageFilter = void 0;
4
+ const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
5
+ class MetroMessageFilter {
6
+ static getValidMessagesWithTrackIds(messages) {
7
+ let filteredMessages = [];
8
+ let trackIds = new Set();
9
+ for (const message of messages) {
10
+ const { delay_origin, track_id } = message;
11
+ if (delay_origin < MetroMessageFilter.DELAY_ORIGIN_RANGE_MIN ||
12
+ delay_origin > MetroMessageFilter.DELAY_ORIGIN_RANGE_MAX) {
13
+ helpers_1.log.warn(`getValidMessagesWithTrackIds: delay origin ${delay_origin} is out of range ` +
14
+ `[${MetroMessageFilter.DELAY_ORIGIN_RANGE_MIN}, ${MetroMessageFilter.DELAY_ORIGIN_RANGE_MAX}]`);
15
+ continue;
16
+ }
17
+ filteredMessages.push(message);
18
+ trackIds.add(track_id);
19
+ }
20
+ return {
21
+ filteredMessages,
22
+ trackIds: Array.from(trackIds),
23
+ };
24
+ }
25
+ }
26
+ exports.MetroMessageFilter = MetroMessageFilter;
27
+ MetroMessageFilter.DELAY_ORIGIN_RANGE_MIN = -4 * 60 * 60; // 4 hours delay
28
+ MetroMessageFilter.DELAY_ORIGIN_RANGE_MAX = 1 * 60 * 60; // 1 hour ahead of time
29
+ //# sourceMappingURL=MetroMessageFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetroMessageFilter.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/helpers/MetroMessageFilter.ts"],"names":[],"mappings":";;;AAAA,2EAAoE;AAQpE,MAAa,kBAAkB;IAIpB,MAAM,CAAC,4BAA4B,CAAC,QAAmC;QAC1E,IAAI,gBAAgB,GAA8B,EAAE,CAAC;QACrD,IAAI,QAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;QAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAC3C,IACI,YAAY,GAAG,kBAAkB,CAAC,sBAAsB;gBACxD,YAAY,GAAG,kBAAkB,CAAC,sBAAsB,EAC1D;gBACE,aAAG,CAAC,IAAI,CACJ,8CAA8C,YAAY,mBAAmB;oBACzE,IAAI,kBAAkB,CAAC,sBAAsB,KAAK,kBAAkB,CAAC,sBAAsB,GAAG,CACrG,CAAC;gBAEF,SAAS;aACZ;YAED,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC1B;QAED,OAAO;YACH,gBAAgB;YAChB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;SACjC,CAAC;IACN,CAAC;;AA9BL,gDA+BC;AA9BkB,yCAAsB,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB;AACvD,yCAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,uBAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "2.3.3-dev.688627192",
3
+ "version": "2.3.3",
4
4
  "description": "Golemio PID Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "@commitlint/cli": "^11.0.0",
34
34
  "@commitlint/config-conventional": "^11.0.0",
35
35
  "@golemio/cli": "1.3.3",
36
- "@golemio/core": "1.2.21-dev.676070634",
36
+ "@golemio/core": "1.2.21",
37
37
  "@golemio/db-common": "1.0.2",
38
38
  "@golemio/eslint-config": "^1.1.0",
39
39
  "@ovos-media/ts-transform-paths": "^1.7.18-1",
@@ -68,7 +68,7 @@
68
68
  "typescript": "4.7.2"
69
69
  },
70
70
  "peerDependencies": {
71
- "@golemio/core": "^1.2.17"
71
+ "@golemio/core": "^1.2.21"
72
72
  },
73
73
  "dependencies": {
74
74
  "@golemio/ovapi-gtfs-realtime-bindings": "1.0.0",