@golemio/pid 2.7.13-dev.940112441 → 2.8.0

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 (74) hide show
  1. package/db/example/12_metro_line_A_gtfs_trips.sql +0 -4
  2. package/dist/integration-engine/index.js +0 -2
  3. package/dist/integration-engine/index.js.map +1 -1
  4. package/dist/integration-engine/queueDefinitions.js +50 -0
  5. package/dist/integration-engine/queueDefinitions.js.map +1 -1
  6. package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.d.ts +63 -0
  7. package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.js +541 -3
  8. package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.js.map +1 -1
  9. package/dist/integration-engine/ropid-gtfs/data-access/cache/StaticFileRedisRepository.js +4 -18
  10. package/dist/integration-engine/ropid-gtfs/data-access/cache/StaticFileRedisRepository.js.map +1 -1
  11. package/dist/integration-engine/ropid-gtfs/interfaces/ICheckForNewDataInput.js.map +1 -0
  12. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSTransformation.js +3 -16
  13. package/dist/integration-engine/ropid-gtfs/transformations/RopidGTFSTransformation.js.map +1 -1
  14. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.d.ts +3 -3
  15. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +3 -21
  16. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
  17. package/dist/output-gateway/pid/index.d.ts +2 -3
  18. package/dist/output-gateway/pid/index.js +1 -1
  19. package/dist/output-gateway/pid/index.js.map +1 -1
  20. package/dist/schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel.d.ts +2 -3
  21. package/docs/implementation_documentation.md +37 -39
  22. package/docs/openapi-output.yaml +1 -1
  23. package/package.json +3 -3
  24. package/dist/helpers/AccessibilityEnums.d.ts +0 -16
  25. package/dist/helpers/AccessibilityEnums.js +0 -22
  26. package/dist/helpers/AccessibilityEnums.js.map +0 -1
  27. package/dist/integration-engine/ropid-gtfs/ioc/Di.d.ts +0 -3
  28. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +0 -29
  29. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +0 -1
  30. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +0 -8
  31. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +0 -12
  32. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +0 -1
  33. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.d.ts +0 -5
  34. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +0 -23
  35. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +0 -1
  36. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckForNewDataTask.d.ts +0 -12
  37. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckForNewDataTask.js +0 -61
  38. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckForNewDataTask.js.map +0 -1
  39. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.d.ts +0 -14
  40. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +0 -93
  41. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +0 -1
  42. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/DownloadDatasetsTask.d.ts +0 -19
  43. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/DownloadDatasetsTask.js +0 -152
  44. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/DownloadDatasetsTask.js.map +0 -1
  45. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPrecomputedTablesTask.d.ts +0 -11
  46. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPrecomputedTablesTask.js +0 -57
  47. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPrecomputedTablesTask.js.map +0 -1
  48. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/TransformAndSaveDataTask.d.ts +0 -21
  49. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/TransformAndSaveDataTask.js +0 -160
  50. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/TransformAndSaveDataTask.js.map +0 -1
  51. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/HelperTypes.d.ts +0 -24
  52. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/HelperTypes.js +0 -36
  53. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/HelperTypes.js.map +0 -1
  54. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.d.ts +0 -12
  55. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js +0 -67
  56. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js.map +0 -1
  57. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/RopidGtfsFactory.d.ts +0 -13
  58. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/RopidGtfsFactory.js +0 -102
  59. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/RopidGtfsFactory.js.map +0 -1
  60. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/ICheckForNewDataInput.js.map +0 -1
  61. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IDatasetsInput.d.ts +0 -4
  62. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IDatasetsInput.js +0 -3
  63. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IDatasetsInput.js.map +0 -1
  64. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/CachedDatasetSchema.d.ts +0 -8
  65. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/CachedDatasetSchema.js +0 -40
  66. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/CachedDatasetSchema.js.map +0 -1
  67. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/CheckForNewDataMessageValidation.d.ts +0 -4
  68. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/CheckForNewDataMessageValidation.js +0 -22
  69. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/CheckForNewDataMessageValidation.js.map +0 -1
  70. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/DownloadDataInputSchema.d.ts +0 -5
  71. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/DownloadDataInputSchema.js +0 -23
  72. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/DownloadDataInputSchema.js.map +0 -1
  73. /package/dist/integration-engine/ropid-gtfs/{workers/timetables/tasks/interfaces → interfaces}/ICheckForNewDataInput.d.ts +0 -0
  74. /package/dist/integration-engine/ropid-gtfs/{workers/timetables/tasks/interfaces → interfaces}/ICheckForNewDataInput.js +0 -0
@@ -1,14 +0,0 @@
1
- import { AbstractTask } from "@golemio/core/dist/integration-engine/workers";
2
- import { IDatasetsInput } from "./interfaces/IDatasetsInput";
3
- import { DatasetsInputSchema } from "./schema/DownloadDataInputSchema";
4
- export declare class CheckSavedRowsAndReplaceTablesTask extends AbstractTask<IDatasetsInput> {
5
- readonly queueName = "checkSavedRowsAndReplaceTables";
6
- readonly queueTtl: number;
7
- readonly schema: typeof DatasetsInputSchema;
8
- private logger;
9
- private metaModel;
10
- private dataCacheManager;
11
- private precomputeTablesFacade;
12
- constructor(queuePrefix: string);
13
- protected execute(data: IDatasetsInput): Promise<void>;
14
- }
@@ -1,93 +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.CheckSavedRowsAndReplaceTablesTask = void 0;
13
- const ModuleContainerToken_1 = require("../../../../ioc/ModuleContainerToken");
14
- const DataCacheManager_1 = require("../../../helpers/DataCacheManager");
15
- const SourceTableSuffixEnum_1 = require("../../../helpers/SourceTableSuffixEnum");
16
- const Di_1 = require("../../../ioc/Di");
17
- const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
18
- const constants_1 = require("../../../../vehicle-positions/workers/vehicle-positions/constants");
19
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
- const integration_engine_1 = require("@golemio/core/dist/integration-engine");
21
- const workers_1 = require("@golemio/core/dist/integration-engine/workers");
22
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
23
- const DownloadDataInputSchema_1 = require("./schema/DownloadDataInputSchema");
24
- class CheckSavedRowsAndReplaceTablesTask extends workers_1.AbstractTask {
25
- constructor(queuePrefix) {
26
- super(queuePrefix);
27
- this.queueName = "checkSavedRowsAndReplaceTables";
28
- this.queueTtl = 23 * 60 * 60 * 1000; // 23 hours
29
- this.schema = DownloadDataInputSchema_1.DatasetsInputSchema;
30
- this.logger = Di_1.RopidGtfsContainer.resolve(CoreToken_1.CoreToken.Logger);
31
- // MetaData Model
32
- this.metaModel = Di_1.RopidGtfsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.RopidGTFSMetadataModel);
33
- this.dataCacheManager = DataCacheManager_1.DataCacheManager.getInstance();
34
- this.precomputeTablesFacade = Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.PrecomputedTablesFacade);
35
- }
36
- execute(data) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- const datasetDeployInfo = yield Promise.all(data.datasets.map((dataset) => __awaiter(this, void 0, void 0, function* () {
39
- const lastModified = yield this.metaModel.getLastModified(dataset);
40
- const isDeployed = yield this.metaModel.checkIfNewVersionIsAlreadyDeployed(dataset, lastModified.version);
41
- return { dataset, lastModified, isDeployed };
42
- })));
43
- this.logger.debug(`Datasets status: ${JSON.stringify(datasetDeployInfo)}`);
44
- const notDeployed = datasetDeployInfo.filter((info) => !info.isDeployed);
45
- if (data.datasets.length !== notDeployed.length) {
46
- const names = notDeployed.map((el) => el.dataset);
47
- this.logger.error(`Error while synchronized download of datasets: [${names}] of [${data.datasets}] deployed already`);
48
- }
49
- if (!notDeployed.length) {
50
- this.logger.debug(`Datasets status: already deployed`);
51
- return;
52
- }
53
- const notDeployedVersions = notDeployed.map((el) => ({ dataset: el.dataset, version: el.lastModified.version }));
54
- const allSaved = yield this.metaModel.checkAllTablesHasSavedState(notDeployedVersions);
55
- try {
56
- if (!allSaved) {
57
- throw new golemio_errors_1.GeneralError("Some GTFS datasets did not properly save", this.constructor.name);
58
- }
59
- yield Promise.all(datasetDeployInfo.map((el) => __awaiter(this, void 0, void 0, function* () {
60
- yield this.metaModel.checkSavedTmpTables(el.dataset, el.lastModified.version);
61
- })));
62
- yield this.precomputeTablesFacade.createAndPopulatePrecomputedTmpTables(SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp);
63
- yield this.metaModel.replaceTables(notDeployedVersions);
64
- yield this.dataCacheManager.cleanCache();
65
- yield integration_engine_1.QueueManager.sendMessageToExchange(constants_1.WORKER_NAME.toLowerCase(), "refreshGTFSTripData", {});
66
- return;
67
- }
68
- catch (err) {
69
- // log failed saving process
70
- yield Promise.all(notDeployedVersions.map((el) => __awaiter(this, void 0, void 0, function* () {
71
- yield this.metaModel.rollbackFailedSaving(el.dataset, el.version);
72
- })));
73
- // check number of tries
74
- const retries = yield Promise.all(notDeployedVersions.map((el) => __awaiter(this, void 0, void 0, function* () {
75
- return yield this.metaModel.getNumberOfDownloadRetries(el.dataset, el.version);
76
- })));
77
- if (Math.max(...retries) <= 5) {
78
- // send new downloadFiles, log it and finish
79
- integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "downloadDatasets", data);
80
- integration_engine_1.IntegrationErrorHandler.handle(new golemio_errors_1.GeneralError(`Error while checking RopidGTFS saved rows. Attempt number ${Math.min(...retries)} was resent.`, this.constructor.name, err));
81
- return;
82
- }
83
- else {
84
- // at least refresh precomputed tables and finish with error
85
- integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "refreshPrecomputedTables", {});
86
- throw new golemio_errors_1.GeneralError("Error while checking RopidGTFS saved rows.", this.constructor.name, err);
87
- }
88
- }
89
- });
90
- }
91
- }
92
- exports.CheckSavedRowsAndReplaceTablesTask = CheckSavedRowsAndReplaceTablesTask;
93
- //# sourceMappingURL=CheckSavedRowsAndReplaceTablesTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckSavedRowsAndReplaceTablesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { AbstractTask } from "@golemio/core/dist/integration-engine/workers";
2
- import { IDatasetsInput } from "./interfaces/IDatasetsInput";
3
- import { DatasetsInputSchema } from "./schema/DownloadDataInputSchema";
4
- export declare class DownloadDatasetsTask extends AbstractTask<IDatasetsInput> {
5
- readonly queueName = "downloadDatasets";
6
- readonly queueTtl: number;
7
- readonly schema: typeof DatasetsInputSchema;
8
- private logger;
9
- private metaModel;
10
- private ropidGtfsFactory?;
11
- private gtfsRedisChannel;
12
- private staticFileRedisRepository;
13
- constructor(queuePrefix: string);
14
- protected execute(data: IDatasetsInput): Promise<void>;
15
- /**
16
- * Helper method - download and persist dataset
17
- */
18
- private downloadAndPersistDatasetFiles;
19
- }
@@ -1,152 +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
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DownloadDatasetsTask = void 0;
27
- const Di_1 = require("../../../../ioc/Di");
28
- const ModuleContainerToken_1 = require("../../../../ioc/ModuleContainerToken");
29
- const RopidGTFSMetadataModel_1 = require("../../../RopidGTFSMetadataModel");
30
- const Di_2 = require("../../../ioc/Di");
31
- const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
32
- const RopidMetadataModel_1 = require("../../../../shared/RopidMetadataModel");
33
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
34
- const integration_engine_1 = require("@golemio/core/dist/integration-engine");
35
- const workers_1 = require("@golemio/core/dist/integration-engine/workers");
36
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
37
- const os_1 = __importDefault(require("os"));
38
- const HelperTypes_1 = require("./helpers/HelperTypes");
39
- const DownloadDataInputSchema_1 = require("./schema/DownloadDataInputSchema");
40
- class DownloadDatasetsTask extends workers_1.AbstractTask {
41
- constructor(queuePrefix) {
42
- super(queuePrefix);
43
- this.queueName = "downloadDatasets";
44
- this.queueTtl = 59 * 60 * 1000; // 59 minutes
45
- this.schema = DownloadDataInputSchema_1.DatasetsInputSchema;
46
- /**
47
- * Helper method - download and persist dataset
48
- */
49
- this.downloadAndPersistDatasetFiles = (dataset) => __awaiter(this, void 0, void 0, function* () {
50
- this.logger.info(`Datasets: processing ${dataset}`);
51
- let files = yield this.ropidGtfsFactory.getDatasetMap()[dataset].datasource.getAll();
52
- if (!Array.isArray(files))
53
- files = [files];
54
- const dbLastModified = yield this.metaModel.getLastModified(dataset);
55
- const cachedDataset = [];
56
- for (const file of files) {
57
- this.logger.info(`Datasets: processing file '${file.name}'`);
58
- const { data } = file, meta = __rest(file, ["data"]);
59
- if (dataset === RopidGTFSMetadataModel_1.DatasetEnum.PID_GTFS || dataset === RopidGTFSMetadataModel_1.DatasetEnum.RUN_NUMBERS) {
60
- yield this.staticFileRedisRepository.pipeStream(file.filepath, data);
61
- }
62
- else {
63
- yield this.staticFileRedisRepository.set(file.filepath, typeof data === "string" ? data : JSON.stringify(data));
64
- }
65
- const key = (0, HelperTypes_1.datasetFileModelMap)(dataset, file.name);
66
- const metaStates = (Array.isArray(key) ? key : [key]).map((name) => {
67
- return {
68
- dataset,
69
- key: name,
70
- type: RopidMetadataModel_1.MetaTypeEnum.STATE,
71
- value: RopidMetadataModel_1.MetaStateEnum.DOWNLOADED,
72
- version: dbLastModified.version + 1,
73
- };
74
- });
75
- for (const metaState of metaStates) {
76
- yield this.metaModel.save(metaState);
77
- }
78
- cachedDataset.push(Object.assign(Object.assign({}, meta), { dataset }));
79
- }
80
- const lastModified = yield this.ropidGtfsFactory.getDatasetMap()[dataset].datasource.getLastModified();
81
- yield this.metaModel.save({
82
- dataset,
83
- key: RopidMetadataModel_1.MetaDatasetInfoKeyEnum.LAST_MODIFIED,
84
- type: RopidMetadataModel_1.MetaTypeEnum.DATASET_INFO,
85
- value: lastModified,
86
- version: dbLastModified.version + 1,
87
- });
88
- this.logger.info(`Datasets: processing ${dataset} finished - ${JSON.stringify(cachedDataset)}`);
89
- return cachedDataset;
90
- });
91
- this.logger = Di_1.PidContainer.resolve(CoreToken_1.CoreToken.Logger);
92
- this.gtfsRedisChannel = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RedisPubSubChannel);
93
- this.staticFileRedisRepository = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.StaticFileRedisRepository);
94
- // MetaData Model
95
- this.metaModel = Di_2.RopidGtfsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.RopidGTFSMetadataModel);
96
- }
97
- execute(data) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- this.logger.info(`Datasets: downloading ${data.datasets}`);
100
- /** Ropid GTFS Dataset Map Dependencies **/
101
- this.ropidGtfsFactory = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsFactory);
102
- let cachedDatasets = [];
103
- for (const dataset of data.datasets) {
104
- try {
105
- cachedDatasets = cachedDatasets.concat(yield this.downloadAndPersistDatasetFiles(dataset));
106
- }
107
- catch (err) {
108
- yield integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "refreshPrecomputedTables", {});
109
- if (err instanceof golemio_errors_1.AbstractGolemioError) {
110
- throw err;
111
- }
112
- throw new golemio_errors_1.GeneralError("Error while downloading GTFS datasets", this.constructor.name, err);
113
- }
114
- }
115
- const subscriber = this.gtfsRedisChannel.createSubscriber({ channelSuffix: os_1.default.hostname() });
116
- yield subscriber.subscribe();
117
- for (const cachedDataset of cachedDatasets) {
118
- integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "transformAndSaveData", cachedDataset, {
119
- headers: {
120
- [HelperTypes_1.ORIGIN_HOSTNAME_HEADER]: os_1.default.hostname(),
121
- },
122
- });
123
- }
124
- // Listen for messages from workers and wait for all of them to finish
125
- // before continuing to the next step (replacing tables)
126
- try {
127
- yield subscriber.listen(cachedDatasets.length, ({ message, messageCount, isFinal }) => {
128
- this.logger.debug(`Datasets: received message: ${message} (${messageCount}/${cachedDatasets.length})`);
129
- if (!message.startsWith("OK")) {
130
- this.logger.error(`Datasets: subscription error: ${message}`);
131
- throw new golemio_errors_1.GeneralError(message, this.constructor.name);
132
- }
133
- if (isFinal) {
134
- this.logger.info("Datasets: all messages received");
135
- }
136
- });
137
- }
138
- catch (err) {
139
- if (err instanceof golemio_errors_1.AbstractGolemioError) {
140
- throw err;
141
- }
142
- throw new golemio_errors_1.GeneralError("Error while listening for messages", this.constructor.name, err);
143
- }
144
- finally {
145
- yield subscriber.unsubscribe();
146
- integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "checkSavedRowsAndReplaceTables", data);
147
- }
148
- });
149
- }
150
- }
151
- exports.DownloadDatasetsTask = DownloadDatasetsTask;
152
- //# sourceMappingURL=DownloadDatasetsTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DownloadDatasetsTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/DownloadDatasetsTask.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers";
2
- export declare class RefreshPrecomputedTablesTask extends AbstractEmptyTask {
3
- readonly queueName = "refreshPrecomputedTables";
4
- readonly queueTtl: number;
5
- private logger;
6
- private metaModel;
7
- private dataCacheManager;
8
- private precomputeTablesFacade;
9
- constructor(queuePrefix: string);
10
- protected execute(): Promise<void>;
11
- }
@@ -1,57 +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.RefreshPrecomputedTablesTask = void 0;
13
- const Di_1 = require("../../../../ioc/Di");
14
- const ModuleContainerToken_1 = require("../../../../ioc/ModuleContainerToken");
15
- const DataCacheManager_1 = require("../../../helpers/DataCacheManager");
16
- const SourceTableSuffixEnum_1 = require("../../../helpers/SourceTableSuffixEnum");
17
- const Di_2 = require("../../../ioc/Di");
18
- const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
19
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
- const workers_1 = require("@golemio/core/dist/integration-engine/workers");
21
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
22
- class RefreshPrecomputedTablesTask extends workers_1.AbstractEmptyTask {
23
- constructor(queuePrefix) {
24
- super(queuePrefix);
25
- this.queueName = "refreshPrecomputedTables";
26
- this.queueTtl = 59 * 60 * 1000; // 59 minutes
27
- this.logger = Di_2.RopidGtfsContainer.resolve(CoreToken_1.CoreToken.Logger);
28
- this.metaModel = Di_2.RopidGtfsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.RopidGTFSMetadataModel);
29
- this.dataCacheManager = DataCacheManager_1.DataCacheManager.getInstance();
30
- this.precomputeTablesFacade = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.PrecomputedTablesFacade);
31
- }
32
- execute() {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- try {
35
- yield this.precomputeTablesFacade.createAndPopulatePrecomputedTmpTables(SourceTableSuffixEnum_1.SourceTableSuffixEnum.Actual);
36
- }
37
- catch (err) {
38
- this.logger.error(err);
39
- throw new golemio_errors_1.GeneralError("Error while creating RopidGTFS precomputed tables", this.constructor.name);
40
- }
41
- const connection = Di_1.PidContainer.resolve(CoreToken_1.CoreToken.PostgresConnector).getConnection();
42
- const transaction = yield connection.transaction();
43
- try {
44
- yield this.metaModel.replacePrecomputedTables(transaction);
45
- yield transaction.commit();
46
- }
47
- catch (err) {
48
- yield transaction.rollback();
49
- this.logger.error(err);
50
- throw new golemio_errors_1.GeneralError("Error while replacing RopidGTFS precomputed tables", this.constructor.name);
51
- }
52
- yield this.dataCacheManager.cleanCache();
53
- });
54
- }
55
- }
56
- exports.RefreshPrecomputedTablesTask = RefreshPrecomputedTablesTask;
57
- //# sourceMappingURL=RefreshPrecomputedTablesTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RefreshPrecomputedTablesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPrecomputedTablesTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0C;AAC1C,+EAAoE;AAEpE,wEAA2E;AAC3E,kFAAqF;AACrF,wCAA2D;AAC3D,kFAAqF;AAErF,wEAAqE;AAErE,2EAAkF;AAClF,6EAAwE;AAGxE,MAAa,4BAA6B,SAAQ,2BAAiB;IAS/D,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QATP,cAAS,GAAG,0BAA0B,CAAC;QACvC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QASpD,IAAI,CAAC,MAAM,GAAG,uBAAkB,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,uBAAkB,CAAC,OAAO,CAAyB,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QACjH,IAAI,CAAC,gBAAgB,GAAG,mCAAgB,CAAC,WAAW,EAAE,CAAC;QACvD,IAAI,CAAC,sBAAsB,GAAG,uBAAkB,CAAC,OAAO,CACpD,iDAAuB,CAAC,uBAAuB,CAClD,CAAC;IACN,CAAC;IAEe,OAAO;;YACnB,IAAI;gBACA,MAAM,IAAI,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,6CAAqB,CAAC,MAAM,CAAC,CAAC;aACzG;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,IAAI,6BAAY,CAAC,mDAAmD,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACtG;YAED,MAAM,UAAU,GAAG,iBAAY,CAAC,OAAO,CAAqB,qBAAS,CAAC,iBAAiB,CAAC,CAAC,aAAa,EAAE,CAAC;YACzG,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YAEnD,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBAC3D,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;aAC9B;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,IAAI,6BAAY,CAAC,oDAAoD,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACvG;YAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAC7C,CAAC;KAAA;CACJ;AA1CD,oEA0CC"}
@@ -1,21 +0,0 @@
1
- import { AbstractTask } from "@golemio/core/dist/integration-engine/workers";
2
- import { MessageProperties } from "amqplib";
3
- import { ICachedDataset } from "./helpers/HelperTypes";
4
- import { CachedDatasetSchema } from "./schema/CachedDatasetSchema";
5
- export declare class TransformAndSaveDataTask extends AbstractTask<ICachedDataset> {
6
- readonly queueName = "transformAndSaveData";
7
- readonly queueTtl: number;
8
- readonly schema: typeof CachedDatasetSchema;
9
- private logger;
10
- private staticFileRedisRepository;
11
- private transformationGtfs;
12
- private ropidGtfsFactory;
13
- private gtfsRedisChannel;
14
- private metaModel;
15
- constructor(queuePrefix: string);
16
- protected execute(inputData: ICachedDataset, msgProperties?: MessageProperties): Promise<void>;
17
- private saveTransformedDataset;
18
- private createTmpModel;
19
- private streamDataToTmp;
20
- private getTmpModelByName;
21
- }
@@ -1,160 +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.TransformAndSaveDataTask = void 0;
13
- const Di_1 = require("../../../../ioc/Di");
14
- const ModuleContainerToken_1 = require("../../../../ioc/ModuleContainerToken");
15
- const ropid_gtfs_1 = require("../../..");
16
- const SourceTableSuffixEnum_1 = require("../../../helpers/SourceTableSuffixEnum");
17
- const Di_2 = require("../../../ioc/Di");
18
- const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
19
- const utils_1 = require("../../../utils");
20
- const RopidMetadataModel_1 = require("../../../../shared/RopidMetadataModel");
21
- const const_1 = require("../../../../../schema-definitions/const");
22
- const ropid_gtfs_2 = require("../../../../../schema-definitions/ropid-gtfs");
23
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
24
- const PostgresModel_1 = require("@golemio/core/dist/integration-engine/models/PostgresModel");
25
- const workers_1 = require("@golemio/core/dist/integration-engine/workers");
26
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
27
- const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
28
- const pg_copy_streams_1 = require("pg-copy-streams");
29
- const HelperTypes_1 = require("./helpers/HelperTypes");
30
- const CachedDatasetSchema_1 = require("./schema/CachedDatasetSchema");
31
- class TransformAndSaveDataTask extends workers_1.AbstractTask {
32
- constructor(queuePrefix) {
33
- super(queuePrefix);
34
- this.queueName = "transformAndSaveData";
35
- this.queueTtl = 23 * 60 * 60 * 1000; // 23 hours
36
- this.schema = CachedDatasetSchema_1.CachedDatasetSchema;
37
- this.saveTransformedDataset = (transformedData, dataset, modelName) => __awaiter(this, void 0, void 0, function* () {
38
- const model = yield this.createTmpModel(modelName);
39
- switch (dataset) {
40
- case ropid_gtfs_1.DatasetEnum.PID_GTFS:
41
- case ropid_gtfs_1.DatasetEnum.RUN_NUMBERS:
42
- yield this.streamDataToTmp(transformedData, modelName);
43
- break;
44
- default:
45
- yield (model === null || model === void 0 ? void 0 : model.save(transformedData, false));
46
- this.logger.info(`Datasets: copying to tmp success (${modelName})`);
47
- }
48
- const dbLastModified = yield this.metaModel.getLastModified(dataset);
49
- yield this.metaModel.updateState(dataset, modelName, RopidMetadataModel_1.MetaStateEnum.SAVED, dbLastModified.version);
50
- });
51
- this.createTmpModel = (name) => __awaiter(this, void 0, void 0, function* () {
52
- const model = yield this.getTmpModelByName(name);
53
- if (ropid_gtfs_2.RopidGTFS[name].modelIndexOptions) {
54
- yield model.query((0, utils_1.buildDropIndexQuery)(ropid_gtfs_2.RopidGTFS[name].modelIndexOptions));
55
- }
56
- yield model.sync({ force: true, schema: const_1.PG_SCHEMA });
57
- return model;
58
- });
59
- this.streamDataToTmp = (data, modelName) => __awaiter(this, void 0, void 0, function* () {
60
- // get connection and db client
61
- const connection = Di_1.PidContainer.resolve(CoreToken_1.CoreToken.PostgresConnector).getConnection();
62
- const client = (yield connection.connectionManager.getConnection({ type: "write" }));
63
- const tmpTableName = ropid_gtfs_2.RopidGTFS[modelName].pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp;
64
- // copy transformed data to tmp table by stream
65
- yield new Promise((resolve, reject) => {
66
- const stream = client
67
- .query((0, pg_copy_streams_1.from)(`COPY "${const_1.PG_SCHEMA}".${tmpTableName} FROM STDIN DELIMITER ',' CSV HEADER;`))
68
- .on("error", (err) => __awaiter(this, void 0, void 0, function* () {
69
- this.logger.error(`Datasets: copying to tmp error (${modelName}): ${err.toString()}`);
70
- yield connection.connectionManager.releaseConnection(client);
71
- return reject(err);
72
- }))
73
- .on("finish", () => __awaiter(this, void 0, void 0, function* () {
74
- this.logger.info(`Datasets: copying to tmp success (${modelName})`);
75
- yield connection.connectionManager.releaseConnection(client);
76
- return resolve();
77
- }));
78
- data.pipe(stream);
79
- });
80
- });
81
- this.getTmpModelByName = (name) => __awaiter(this, void 0, void 0, function* () {
82
- const modelDef = ropid_gtfs_2.RopidGTFS[name];
83
- if (!modelDef || !modelDef.name || !modelDef.pgTableName || !modelDef.outputSequelizeAttributes) {
84
- throw new Error("Model not found.");
85
- }
86
- const model = new PostgresModel_1.PostgresModel(modelDef.name + "Tmp" + "Model", {
87
- hasTmpTable: false,
88
- outputSequelizeAttributes: modelDef.outputSequelizeAttributes,
89
- pgSchema: const_1.PG_SCHEMA,
90
- pgTableName: modelDef.pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp,
91
- savingType: "insertOnly",
92
- sequelizeAdditionalSettings: Object.assign({ timestamps: false }, (modelDef.modelIndexOptions &&
93
- modelDef.modelIndexOptions.length && {
94
- indexes: modelDef.modelIndexOptions.map((indexDef) => {
95
- return Object.assign(Object.assign({}, indexDef), { name: indexDef.name + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp });
96
- }),
97
- })),
98
- }, new golemio_validator_1.JSONSchemaValidator(modelDef.name + "Tmp" + "ModelValidator", modelDef.outputMongooseSchemaObject));
99
- return model;
100
- });
101
- this.logger = Di_2.RopidGtfsContainer.resolve(CoreToken_1.CoreToken.Logger);
102
- this.metaModel = Di_2.RopidGtfsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.RopidGTFSMetadataModel);
103
- this.staticFileRedisRepository = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.StaticFileRedisRepository);
104
- this.transformationGtfs = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGTFSTransformation); // TODO is it posible to use factory instead, which already contain this transformation?
105
- this.ropidGtfsFactory = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsFactory);
106
- this.gtfsRedisChannel = Di_2.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RedisPubSubChannel);
107
- }
108
- execute(inputData, msgProperties) {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- const datasetMap = this.ropidGtfsFactory.getDatasetMap();
111
- let modelName = (0, HelperTypes_1.datasetFileModelMap)(inputData.dataset, inputData.name);
112
- if (!Array.isArray(modelName)) {
113
- modelName = [modelName];
114
- }
115
- let errorMessage;
116
- if (inputData.dataset === ropid_gtfs_1.DatasetEnum.PID_GTFS || inputData.dataset === ropid_gtfs_1.DatasetEnum.RUN_NUMBERS) {
117
- try {
118
- const sourceStream = this.staticFileRedisRepository.getReadableStream(inputData.filepath);
119
- const transformedDataset = yield this.transformationGtfs.transform({
120
- sourceStream,
121
- name: modelName[0],
122
- });
123
- yield this.saveTransformedDataset(transformedDataset, inputData.dataset, modelName[0]);
124
- }
125
- catch (err) {
126
- errorMessage = err.message;
127
- }
128
- }
129
- else {
130
- try {
131
- const data = yield this.staticFileRedisRepository.get(inputData.filepath);
132
- const transformedDataset = yield datasetMap[inputData.dataset].transformation.transform({
133
- data: datasetMap[inputData.dataset].cacheContentType === HelperTypes_1.CacheContentType.JSON ? JSON.parse(data) : data,
134
- name: inputData.name,
135
- });
136
- if (inputData.dataset === ropid_gtfs_1.DatasetEnum.CIS_STOPS) {
137
- yield this.saveTransformedDataset(transformedDataset.cis_stops, inputData.dataset, modelName[0]);
138
- yield this.saveTransformedDataset(transformedDataset.cis_stop_groups, inputData.dataset, modelName[1]);
139
- }
140
- else {
141
- yield this.saveTransformedDataset(transformedDataset, inputData.dataset, modelName[0]);
142
- }
143
- }
144
- catch (err) {
145
- errorMessage = err.message;
146
- }
147
- }
148
- if (msgProperties === null || msgProperties === void 0 ? void 0 : msgProperties.headers[HelperTypes_1.ORIGIN_HOSTNAME_HEADER]) {
149
- yield this.gtfsRedisChannel.publishMessage(`${errorMessage !== null && errorMessage !== void 0 ? errorMessage : "OK"} (${modelName})`, {
150
- channelSuffix: msgProperties.headers[HelperTypes_1.ORIGIN_HOSTNAME_HEADER],
151
- });
152
- }
153
- if (errorMessage) {
154
- throw new golemio_errors_1.GeneralError(errorMessage, this.constructor.name);
155
- }
156
- });
157
- }
158
- }
159
- exports.TransformAndSaveDataTask = TransformAndSaveDataTask;
160
- //# sourceMappingURL=TransformAndSaveDataTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransformAndSaveDataTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/TransformAndSaveDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0C;AAC1C,+EAAoE;AACpE,yCAA8F;AAE9F,kFAAqF;AACrF,wCAA2D;AAC3D,kFAAqF;AACrF,0CAA2D;AAC3D,8EAA8D;AAC9D,mEAAuC;AACvC,6EAAiF;AAGjF,wEAAqE;AAGrE,8FAA2F;AAC3F,2EAA6E;AAC7E,6EAAwE;AACxE,mFAAkF;AAElF,qDAAmD;AACnD,uDAM+B;AAE/B,sEAAmE;AAEnE,MAAa,wBAAyB,SAAQ,sBAA4B;IAYtE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAZP,cAAS,GAAG,sBAAsB,CAAC;QACnC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;QAC3C,WAAM,GAAG,yCAAmB,CAAC;QA0ErC,2BAAsB,GAAG,CAC7B,eAAoB,EACpB,OAAqB,EACrB,SAA2B,EACd,EAAE;YACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAEnD,QAAQ,OAAO,EAAE;gBACb,KAAK,wBAAW,CAAC,QAAQ,CAAC;gBAC1B,KAAK,wBAAW,CAAC,WAAW;oBACxB,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,SAA8B,CAAC,CAAC;oBAC5E,MAAM;gBACV;oBACI,MAAM,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA,CAAC;oBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,SAAS,GAAG,CAAC,CAAC;aAC3E;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,kCAAa,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QACtG,CAAC,CAAA,CAAC;QAEM,mBAAc,GAAG,CAAO,IAAY,EAA0B,EAAE;YACpE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,sBAAS,CAAC,IAAuB,CAAC,CAAC,iBAAiB,EAAE;gBACtD,MAAM,KAAK,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,sBAAS,CAAC,IAAuB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;aAChG;YACD,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAS,EAAE,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAA,CAAC;QAEM,oBAAe,GAAG,CAAO,IAAS,EAAE,SAA4B,EAAE,EAAE;YACxE,+BAA+B;YAC/B,MAAM,UAAU,GAAG,iBAAY,CAAC,OAAO,CAAqB,qBAAS,CAAC,iBAAiB,CAAC,CAAC,aAAa,EAAE,CAAC;YACzG,MAAM,MAAM,GAAG,CAAC,MAAM,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAQ,CAAC;YAE5F,MAAM,YAAY,GAAG,sBAAS,CAAC,SAA4B,CAAC,CAAC,WAAW,GAAG,6CAAqB,CAAC,GAAG,CAAC;YAErG,+CAA+C;YAC/C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACxC,MAAM,MAAM,GAAG,MAAM;qBAChB,KAAK,CAAC,IAAA,sBAAQ,EAAC,SAAS,iBAAS,KAAK,YAAY,uCAAuC,CAAC,CAAC;qBAC3F,EAAE,CAAC,OAAO,EAAE,CAAO,GAAQ,EAAE,EAAE;oBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,SAAS,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACtF,MAAM,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC7D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAA,CAAC;qBACD,EAAE,CAAC,QAAQ,EAAE,GAAS,EAAE;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,SAAS,GAAG,CAAC,CAAC;oBACpE,MAAM,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC7D,OAAO,OAAO,EAAE,CAAC;gBACrB,CAAC,CAAA,CAAC,CAAC;gBACP,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACP,CAAC,CAAA,CAAC;QAEM,sBAAiB,GAAG,CAAO,IAAY,EAA0B,EAAE;YACvE,MAAM,QAAQ,GAAG,sBAAS,CAAC,IAAuB,CAAC,CAAC;YAEpD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE;gBAC7F,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;aACvC;YAED,MAAM,KAAK,GAAG,IAAI,6BAAa,CAC3B,QAAQ,CAAC,IAAI,GAAG,KAAK,GAAG,OAAO,EAC/B;gBACI,WAAW,EAAE,KAAK;gBAClB,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;gBAC7D,QAAQ,EAAE,iBAAS;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,6CAAqB,CAAC,GAAG;gBAC7D,UAAU,EAAE,YAAY;gBACxB,2BAA2B,kBACvB,UAAU,EAAE,KAAK,IACd,CAAC,QAAQ,CAAC,iBAAiB;oBAC1B,QAAQ,CAAC,iBAAiB,CAAC,MAAM,IAAI;oBACjC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE;wBACtD,uCACO,QAAQ,KACX,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,6CAAqB,CAAC,GAAG,IACjD;oBACN,CAAC,CAAC;iBACL,CAAC,CACT;aACJ,EACD,IAAI,uCAAmB,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,GAAG,gBAAgB,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CACzG,CAAC;YAEF,OAAO,KAAK,CAAC;QACjB,CAAC,CAAA,CAAC;QAtJE,IAAI,CAAC,MAAM,GAAG,uBAAkB,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,uBAAkB,CAAC,OAAO,CAAyB,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QAEjH,IAAI,CAAC,yBAAyB,GAAG,uBAAkB,CAAC,OAAO,CACvD,iDAAuB,CAAC,yBAAyB,CACpD,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,uBAAkB,CAAC,OAAO,CAChD,iDAAuB,CAAC,uBAAuB,CAClD,CAAC,CAAC,wFAAwF;QAC3F,IAAI,CAAC,gBAAgB,GAAG,uBAAkB,CAAC,OAAO,CAAmB,iDAAuB,CAAC,gBAAgB,CAAC,CAAC;QAC/G,IAAI,CAAC,gBAAgB,GAAG,uBAAkB,CAAC,OAAO,CAAqB,iDAAuB,CAAC,kBAAkB,CAAC,CAAC;IACvH,CAAC;IAEe,OAAO,CAAC,SAAyB,EAAE,aAAiC;;YAChF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;YACzD,IAAI,SAAS,GAAG,IAAA,iCAAmB,EAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;aAC3B;YAED,IAAI,YAAgC,CAAC;YACrC,IAAI,SAAS,CAAC,OAAO,KAAK,wBAAW,CAAC,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,wBAAW,CAAC,WAAW,EAAE;gBAC7F,IAAI;oBACA,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC1F,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;wBAC/D,YAAY;wBACZ,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;qBACrB,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1F;gBAAC,OAAO,GAAG,EAAE;oBACV,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;iBAC9B;aACJ;iBAAM;gBACH,IAAI;oBACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC1E,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,OAAuB,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;wBACpG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,KAAK,8BAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;wBACxG,IAAI,EAAE,SAAS,CAAC,IAAI;qBACvB,CAAC,CAAC;oBAEH,IAAI,SAAS,CAAC,OAAO,KAAK,wBAAW,CAAC,SAAS,EAAE;wBAC7C,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjG,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1G;yBAAM;wBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1F;iBACJ;gBAAC,OAAO,GAAG,EAAE;oBACV,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;iBAC9B;aACJ;YAED,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,oCAAsB,CAAC,EAAE;gBAChD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,KAAK,SAAS,GAAG,EAAE;oBACjF,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,oCAAsB,CAAC;iBAC/D,CAAC,CAAC;aACN;YAED,IAAI,YAAY,EAAE;gBACd,MAAM,IAAI,6BAAY,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC/D;QACL,CAAC;KAAA;CA0FJ;AArKD,4DAqKC"}
@@ -1,24 +0,0 @@
1
- import { DatasetEnum } from "../../../../RopidGTFSMetadataModel";
2
- import { DatasetModelName } from "../../../../../../schema-definitions/ropid-gtfs";
3
- import { IDataSource } from "@golemio/core/dist/integration-engine/datasources/IDataSource";
4
- import { IFile } from "@golemio/core/dist/integration-engine/datasources/protocol-strategy/IProtocolStrategy";
5
- import { ITransformation } from "@golemio/core/dist/integration-engine/transformations/ITransformation";
6
- export declare const ORIGIN_HOSTNAME_HEADER = "x-origin-hostname";
7
- export type ICachedFileMeta = Omit<IFile, "data">;
8
- export type ICachedDataset = ICachedFileMeta & {
9
- dataset: GTFSDatasets;
10
- };
11
- export declare enum CacheContentType {
12
- CSV = "CSV",
13
- JSON = "JSON"
14
- }
15
- export type GTFSDatasets = Exclude<DatasetEnum, DatasetEnum.DEPARTURES_PRESETS>;
16
- export type DatasetMap = {
17
- [key in GTFSDatasets]: {
18
- datasource: IDataSource;
19
- transformation: ITransformation;
20
- cacheContentType: CacheContentType;
21
- };
22
- };
23
- export declare const isCachedDataset: (obj: any) => obj is ICachedDataset;
24
- export declare const datasetFileModelMap: (dataset: GTFSDatasets, name: string) => DatasetModelName | DatasetModelName[];