@golemio/pid 2.2.4-dev.546779094 → 2.2.4

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 (44) hide show
  1. package/db/example/09_departureboards_testdata_nogapfilter.sql +1541 -0
  2. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.d.ts +0 -2
  3. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js +0 -26
  4. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js.map +1 -1
  5. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.d.ts +0 -2
  6. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js +0 -19
  7. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js.map +1 -1
  8. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.d.ts +0 -1
  9. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js +1 -7
  10. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js.map +1 -1
  11. package/dist/output-gateway/pid/PIDRouter.js +9 -1
  12. package/dist/output-gateway/pid/PIDRouter.js.map +1 -1
  13. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.d.ts +1 -0
  14. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +20 -2
  15. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
  16. package/dist/output-gateway/pid/index.d.ts +5 -2
  17. package/dist/output-gateway/pid/index.js +2 -0
  18. package/dist/output-gateway/pid/index.js.map +1 -1
  19. package/dist/output-gateway/pid/models/helpers/FilterHelper.d.ts +21 -0
  20. package/dist/output-gateway/pid/models/helpers/FilterHelper.js +39 -0
  21. package/dist/output-gateway/pid/models/helpers/FilterHelper.js.map +1 -0
  22. package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.d.ts +3 -3
  23. package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js +27 -34
  24. package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js.map +1 -1
  25. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.d.ts +0 -2
  26. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js +0 -32
  27. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js.map +1 -1
  28. package/package.json +81 -81
  29. package/db/example/pb/alerts.pb +0 -0
  30. package/dist/integration-engine/gtfsrt-alerts/GtfsRtAlertsController.d.ts +0 -10
  31. package/dist/integration-engine/gtfsrt-alerts/GtfsRtAlertsController.js +0 -48
  32. package/dist/integration-engine/gtfsrt-alerts/GtfsRtAlertsController.js.map +0 -1
  33. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsAlertCauseMapper.d.ts +0 -2
  34. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsAlertCauseMapper.js +0 -55
  35. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsAlertCauseMapper.js.map +0 -1
  36. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsEffectMapper.d.ts +0 -2
  37. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsEffectMapper.js +0 -56
  38. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsEffectMapper.js.map +0 -1
  39. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsRtAlertTransformation.d.ts +0 -14
  40. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsRtAlertTransformation.js +0 -99
  41. package/dist/integration-engine/gtfsrt-alerts/transformations/GtfsRtAlertTransformation.js.map +0 -1
  42. package/dist/schema-definitions/gtfsrt-alerts/GtfsRtAlert.d.ts +0 -56
  43. package/dist/schema-definitions/gtfsrt-alerts/GtfsRtAlert.js +0 -29
  44. package/dist/schema-definitions/gtfsrt-alerts/GtfsRtAlert.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"GtfsEffectMapper.js","sourceRoot":"","sources":["../../../../src/integration-engine/gtfsrt-alerts/transformations/GtfsEffectMapper.ts"],"names":[],"mappings":";;;AAAA,uFAA4D;AAE5D,MAAM,kBAAkB,GAAG;IACvB,mBAAmB,EAAE,CAAC,IAAI,CAAC;IAC3B,iBAAiB,EAAE,CAAC,IAAI,CAAC;IACzB,kBAAkB,EAAE,CAAC,IAAI,CAAC;IAC1B,kBAAkB,EAAE,CAAC,IAAI,CAAC;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE;IAC3B,kBAAkB,EAAE,CAAC,IAAI,EAAE;IAC3B,oBAAoB,EAAE,CAAC,IAAI,EAAE;IAC7B,kBAAkB,EAAE,CAAC,IAAI,EAAE;IAC3B,kBAAkB,EAAE,CAAC,IAAI,EAAE;IAC3B,qBAAqB,EAAE,CAAC,IAAI,EAAE;IAC9B,WAAW,EAAE,CAAC,IAAI,EAAE;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE;IACnB,yBAAyB,EAAE,CAAC,IAAI,EAAE;IAClC,oBAAoB,EAAE,CAAC,IAAI,EAAE;CAChC,CAAC;AAEF,SAAgB,wBAAwB,CAAC,SAAiB;IACtD,QAAQ,SAAS,EAAE;QACf,KAAK,kBAAkB,CAAC,mBAAmB;YACvC,OAAO,wBAAU,CAAC,eAAe,CAAC;QACtC,KAAK,kBAAkB,CAAC,iBAAiB;YACrC,OAAO,wBAAU,CAAC,eAAe,CAAC;QACtC,KAAK,kBAAkB,CAAC,kBAAkB;YACtC,OAAO,wBAAU,CAAC,YAAY,CAAC;QACnC,KAAK,kBAAkB,CAAC,kBAAkB;YACtC,OAAO,wBAAU,CAAC,eAAe,CAAC;QACtC,KAAK,kBAAkB,CAAC,kBAAkB;YACtC,OAAO,wBAAU,CAAC,eAAe,CAAC;QACtC,KAAK,kBAAkB,CAAC,kBAAkB;YACtC,OAAO,wBAAU,CAAC,eAAe,CAAC;QACtC,KAAK,kBAAkB,CAAC,oBAAoB;YACxC,OAAO,wBAAU,CAAC,UAAU,CAAC;QACjC,KAAK,kBAAkB,CAAC,kBAAkB;YACtC,OAAO,wBAAU,CAAC,YAAY,CAAC;QACnC,KAAK,kBAAkB,CAAC,kBAAkB;YACtC,OAAO,wBAAU,CAAC,kBAAkB,CAAC;QACzC,KAAK,kBAAkB,CAAC,qBAAqB;YACzC,OAAO,wBAAU,CAAC,gBAAgB,CAAC;QACvC,KAAK,kBAAkB,CAAC,WAAW;YAC/B,OAAO,wBAAU,CAAC,YAAY,CAAC;QACnC,KAAK,kBAAkB,CAAC,UAAU;YAC9B,OAAO,wBAAU,CAAC,MAAM,CAAC;QAC7B,KAAK,kBAAkB,CAAC,yBAAyB;YAC7C,OAAO,wBAAU,CAAC,UAAU,CAAC;QACjC,KAAK,kBAAkB,CAAC,oBAAoB;YACxC,OAAO,wBAAU,CAAC,gBAAgB,CAAC;QACvC;YACI,OAAO,wBAAU,CAAC,cAAc,CAAC;KACxC;AACL,CAAC;AAjCD,4DAiCC"}
@@ -1,14 +0,0 @@
1
- import { BaseTransformation, ITransformation } from "@golemio/core/dist/integration-engine/transformations";
2
- import { IRopidVYMIEventOutput } from "../../../schema-definitions/ropid-vymi";
3
- import { GtfsRtAlert, GtfsTimeRange, InformedEntityRoute } from "../../../schema-definitions/gtfsrt-alerts/GtfsRtAlert";
4
- import { RopidVYMIEventsRoutesModel } from "../../ropid-vymi";
5
- export declare class GtfsRtAlertTransformation extends BaseTransformation implements ITransformation {
6
- name: string;
7
- private eventsRoutesModel;
8
- constructor(eventsRoutesModel: RopidVYMIEventsRoutesModel);
9
- transform: (alertEntities: IRopidVYMIEventOutput[]) => Promise<GtfsRtAlert[]>;
10
- transformElement: (alertEntity: IRopidVYMIEventOutput) => Promise<GtfsRtAlert>;
11
- getDescription: (alertEntity: IRopidVYMIEventOutput) => string;
12
- getActivePeriod: (alertEntity: IRopidVYMIEventOutput) => GtfsTimeRange;
13
- getAffectedRoutes(alertEntity: IRopidVYMIEventOutput): Promise<InformedEntityRoute[]>;
14
- }
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GtfsRtAlertTransformation = void 0;
13
- const transformations_1 = require("@golemio/core/dist/integration-engine/transformations");
14
- const jsdom_1 = require("jsdom");
15
- const GtfsAlertCauseMapper_1 = require("./GtfsAlertCauseMapper");
16
- const GtfsEffectMapper_1 = require("./GtfsEffectMapper");
17
- class GtfsRtAlertTransformation extends transformations_1.BaseTransformation {
18
- constructor(eventsRoutesModel) {
19
- super();
20
- this.transform = (alertEntities) => __awaiter(this, void 0, void 0, function* () {
21
- const transformedEntities = [];
22
- for (const alertEntity of alertEntities) {
23
- transformedEntities.push(yield this.transformElement(alertEntity));
24
- }
25
- return transformedEntities;
26
- });
27
- this.transformElement = (alertEntity) => __awaiter(this, void 0, void 0, function* () {
28
- var _a, _b;
29
- return {
30
- id: `alert-${alertEntity.vymi_id}-${alertEntity.vymi_id_dtb}`,
31
- alert: {
32
- activePeriod: [this.getActivePeriod(alertEntity)],
33
- informedEntity: yield this.getAffectedRoutes(alertEntity),
34
- cause: (0, GtfsAlertCauseMapper_1.getGtfsCause)((_a = alertEntity.cause) !== null && _a !== void 0 ? _a : ""),
35
- effect: (0, GtfsEffectMapper_1.getGtfsEffectByEventType)(Number((_b = alertEntity.event_type) !== null && _b !== void 0 ? _b : 0)),
36
- url: {
37
- translation: [
38
- {
39
- text: `https://pid.cz/mimoradnost/?id=${alertEntity.vymi_id}-${alertEntity.vymi_id_dtb}`,
40
- language: "cs",
41
- },
42
- ],
43
- },
44
- headerText: {
45
- translation: [
46
- {
47
- text: alertEntity.title,
48
- language: "cs",
49
- },
50
- ],
51
- },
52
- descriptionText: {
53
- translation: [
54
- {
55
- text: this.getDescription(alertEntity),
56
- language: "cs",
57
- },
58
- ],
59
- },
60
- },
61
- };
62
- });
63
- this.getDescription = (alertEntity) => {
64
- const description = [
65
- jsdom_1.JSDOM.fragment(alertEntity.description).textContent || "",
66
- jsdom_1.JSDOM.fragment(alertEntity.dpp_action).textContent || "",
67
- jsdom_1.JSDOM.fragment(alertEntity.ropid_action).textContent || "",
68
- ];
69
- return description.join(" ").replaceAll("\n", " ").trim();
70
- };
71
- this.getActivePeriod = (alertEntity) => {
72
- if (!alertEntity.expiration_date) {
73
- return {
74
- start: new Date(alertEntity.time_from).getTime() / 1000,
75
- };
76
- }
77
- return {
78
- start: new Date(alertEntity.time_from).getTime() / 1000,
79
- end: new Date(alertEntity.expiration_date).getTime() / 1000,
80
- };
81
- };
82
- this.name = "GtfsRtAlertTransformation";
83
- this.eventsRoutesModel = eventsRoutesModel;
84
- }
85
- getAffectedRoutes(alertEntity) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const affectedRotues = yield this.eventsRoutesModel.findByEventId(alertEntity.vymi_id);
88
- const routeNames = [];
89
- for (const route of affectedRotues) {
90
- routeNames.push({
91
- routeId: route.name,
92
- });
93
- }
94
- return routeNames;
95
- });
96
- }
97
- }
98
- exports.GtfsRtAlertTransformation = GtfsRtAlertTransformation;
99
- //# sourceMappingURL=GtfsRtAlertTransformation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GtfsRtAlertTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/gtfsrt-alerts/transformations/GtfsRtAlertTransformation.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- export interface GtfsRtAlert {
2
- id: string;
3
- alert: {
4
- activePeriod: GtfsTimeRange[];
5
- informedEntity: InformedEntityRoute[];
6
- cause: GtfsCause;
7
- effect: GtfsEffect;
8
- url: {
9
- translation: GtfsTranslatedString[];
10
- };
11
- headerText: {
12
- translation: GtfsTranslatedString[];
13
- };
14
- descriptionText: {
15
- translation: GtfsTranslatedString[];
16
- };
17
- };
18
- }
19
- export interface InformedEntityRoute {
20
- routeId: string;
21
- }
22
- export interface GtfsTimeRange {
23
- start: number;
24
- end?: number;
25
- }
26
- export interface GtfsTranslatedString {
27
- text: string;
28
- language: string;
29
- }
30
- export declare const GtfsCause: {
31
- UNKNOWN_CAUSE: string;
32
- OTHER_CAUSE: string;
33
- TECHNICAL_PROBLEM: string;
34
- STRIKE: string;
35
- DEMONSTRATION: string;
36
- ACCIDENT: string;
37
- HOLIDAY: string;
38
- WEATHER: string;
39
- MAINTENANCE: string;
40
- CONSTRUCTION: string;
41
- POLICE_ACTIVITY: string;
42
- MEDICAL_EMERGENCY: string;
43
- };
44
- export declare type GtfsCause = typeof GtfsCause[keyof typeof GtfsCause];
45
- export declare const GtfsEffect: {
46
- NO_SERVICE: string;
47
- REDUCED_SERVICE: string;
48
- SIGNIFICANT_DELAYS: string;
49
- DETOUR: string;
50
- ADDITIONAL_SERVICE: string;
51
- MODIFIED_SERVICE: string;
52
- OTHER_EFFECT: string;
53
- UNKNOWN_EFFECT: string;
54
- STOP_MOVED: string;
55
- };
56
- export declare type GtfsEffect = typeof GtfsEffect[keyof typeof GtfsEffect];
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GtfsEffect = exports.GtfsCause = void 0;
4
- exports.GtfsCause = {
5
- UNKNOWN_CAUSE: "UNKNOWN_CAUSE",
6
- OTHER_CAUSE: "OTHER_CAUSE",
7
- TECHNICAL_PROBLEM: "TECHNICAL_PROBLEM",
8
- STRIKE: "STRIKE",
9
- DEMONSTRATION: "DEMONSTRATION",
10
- ACCIDENT: "ACCIDENT",
11
- HOLIDAY: "HOLIDAY",
12
- WEATHER: "WEATHER",
13
- MAINTENANCE: "MAINTENANCE",
14
- CONSTRUCTION: "CONSTRUCTION",
15
- POLICE_ACTIVITY: "POLICE_ACTIVITY",
16
- MEDICAL_EMERGENCY: "MEDICAL_EMERGENCY",
17
- };
18
- exports.GtfsEffect = {
19
- NO_SERVICE: "NO_SERVICE",
20
- REDUCED_SERVICE: "REDUCED_SERVICE",
21
- SIGNIFICANT_DELAYS: "SIGNIFICANT_DELAYS",
22
- DETOUR: "DETOUR",
23
- ADDITIONAL_SERVICE: "ADDITIONAL_SERVICE",
24
- MODIFIED_SERVICE: "MODIFIED_SERVICE",
25
- OTHER_EFFECT: "OTHER_EFFECT",
26
- UNKNOWN_EFFECT: "UNKNOWN_EFFECT",
27
- STOP_MOVED: "STOP_MOVED",
28
- };
29
- //# sourceMappingURL=GtfsRtAlert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GtfsRtAlert.js","sourceRoot":"","sources":["../../../src/schema-definitions/gtfsrt-alerts/GtfsRtAlert.ts"],"names":[],"mappings":";;;AAiCa,QAAA,SAAS,GAAG;IACrB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;CACzC,CAAC;AAIW,QAAA,UAAU,GAAG;IACtB,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IACxC,MAAM,EAAE,QAAQ;IAChB,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;CAC3B,CAAC"}