@golemio/pid 2.13.3-rc.1297265309 → 2.13.3-rc.1298613604
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.
- package/dist/integration-engine/index.d.ts +0 -1
- package/dist/integration-engine/index.js +0 -4
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/index.d.ts +0 -1
- package/dist/integration-engine/ropid-gtfs/index.js +0 -1
- package/dist/integration-engine/ropid-gtfs/index.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +6 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +3 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +3 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.d.ts +3 -1
- package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js +8 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.d.ts +12 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.js +44 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.d.ts +11 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js +69 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.d.ts +11 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js +66 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js.map +1 -0
- package/docs/implementation_documentation.md +34 -38
- package/package.json +1 -1
- package/dist/integration-engine/queueDefinitions.d.ts +0 -6
- package/dist/integration-engine/queueDefinitions.js +0 -40
- package/dist/integration-engine/queueDefinitions.js.map +0 -1
- package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.d.ts +0 -19
- package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.js +0 -79
- package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.js.map +0 -1
|
@@ -15,9 +15,6 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
19
|
if (mod && mod.__esModule) return mod;
|
|
23
20
|
var result = {};
|
|
@@ -33,7 +30,6 @@ const RailtrackWorker_1 = require("./ropid-gtfs/workers/railtrack/RailtrackWorke
|
|
|
33
30
|
const TimetableWorker_1 = require("./ropid-gtfs/workers/timetables/TimetableWorker");
|
|
34
31
|
const RopidVYMIWorker_1 = require("./ropid-vymi/workers/RopidVYMIWorker");
|
|
35
32
|
const vehicle_positions_1 = require("./vehicle-positions");
|
|
36
|
-
__exportStar(require("./queueDefinitions"), exports);
|
|
37
33
|
exports.RopidGTFS = __importStar(require("./ropid-gtfs"));
|
|
38
34
|
exports.RopidVYMI = __importStar(require("./ropid-vymi"));
|
|
39
35
|
exports.VehiclePositions = __importStar(require("./vehicle-positions"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qDAAuD;AACvD,4EAAyE;AACzE,oFAAiF;AACjF,qFAAkF;AAClF,0EAAuE;AACvE,2DAAiG;AAEjG,0DAA0C;AAC1C,0DAA0C;AAC1C,wEAAwD;AAE3C,QAAA,OAAO,GAAoC;IACpD,2BAA2B;IAC3B,4BAAQ;IACR,oCAAgB;IAChB,8BAAU;IACV,sCAAkB;IAClB,YAAY;IAEZ,oBAAoB;IACpB,iCAAe;IACf,2BAAY;IACZ,iCAAe;IACf,YAAY;IAEZ,oBAAoB;IACpB,iCAAe;IACf,YAAY;IAEZ,wBAAwB;IACxB,oCAAmB;IACnB,YAAY;CACf,CAAC"}
|
|
@@ -3,7 +3,6 @@ export * from "./transformations/RopidGTFSCisStopsTransformation";
|
|
|
3
3
|
export * from "./transformations/RopidGTFSTransformation";
|
|
4
4
|
export * from "./RopidGTFSTripsModel";
|
|
5
5
|
export * from "./RopidGtfsFacade";
|
|
6
|
-
export * from "./LegacyRopidGTFSWorker";
|
|
7
6
|
export * from "./RopidGTFSStopTimesModel";
|
|
8
7
|
export * from "./RopidGTFSStopsModel";
|
|
9
8
|
export * from "./RopidGTFSShapesModel";
|
|
@@ -19,7 +19,6 @@ __exportStar(require("./transformations/RopidGTFSCisStopsTransformation"), expor
|
|
|
19
19
|
__exportStar(require("./transformations/RopidGTFSTransformation"), exports);
|
|
20
20
|
__exportStar(require("./RopidGTFSTripsModel"), exports);
|
|
21
21
|
__exportStar(require("./RopidGtfsFacade"), exports);
|
|
22
|
-
__exportStar(require("./LegacyRopidGTFSWorker"), exports);
|
|
23
22
|
__exportStar(require("./RopidGTFSStopTimesModel"), exports);
|
|
24
23
|
__exportStar(require("./RopidGTFSStopsModel"), exports);
|
|
25
24
|
__exportStar(require("./RopidGTFSShapesModel"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yFAAuE;AACvE,oFAAkE;AAClE,4EAA0D;AAC1D,wDAAsC;AACtC,oDAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yFAAuE;AACvE,oFAAkE;AAClE,4EAA0D;AAC1D,wDAAsC;AACtC,oDAAkC;AAClC,4DAA0C;AAC1C,wDAAsC;AACtC,yDAAuC"}
|
|
@@ -19,12 +19,16 @@ const RefreshPublicGtfsDepartureCacheTask_1 = require("../workers/timetables/tas
|
|
|
19
19
|
const PrecomputedTablesFacade_1 = require("../workers/timetables/tasks/helpers/PrecomputedTablesFacade");
|
|
20
20
|
const RopidGtfsFactory_1 = require("../workers/timetables/tasks/helpers/RopidGtfsFactory");
|
|
21
21
|
const RopidGtfsContainerToken_1 = require("./RopidGtfsContainerToken");
|
|
22
|
+
const DeparturesPresetsDatasource_1 = require("../workers/presets/data-access/DeparturesPresetsDatasource");
|
|
23
|
+
const CheckForNewDeparturesPresetsTask_1 = require("../workers/presets/tasks/CheckForNewDeparturesPresetsTask");
|
|
24
|
+
const DownloadDeparturesPresetsTask_1 = require("../workers/presets/tasks/DownloadDeparturesPresetsTask");
|
|
22
25
|
//#region Initialization
|
|
23
26
|
const RopidGtfsContainer = Di_1.PidContainer.createChildContainer();
|
|
24
27
|
exports.RopidGtfsContainer = RopidGtfsContainer;
|
|
25
28
|
//#endregion
|
|
26
29
|
//#region Datasources
|
|
27
30
|
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.BlockStopsRedisRepository, BlockStopsRedisRepository_1.BlockStopsRedisRepository);
|
|
31
|
+
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DeparturesPresetsDataSource, DeparturesPresetsDatasource_1.DeparturesPresetsDataSource);
|
|
28
32
|
//#endregion
|
|
29
33
|
//#region Repositories
|
|
30
34
|
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.StaticFileRedisRepository, StaticFileRedisRepository_1.StaticFileRedisRepository).registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsRepository, RopidGtfsRepository_1.RopidGtfsRepository);
|
|
@@ -45,4 +49,6 @@ RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContaine
|
|
|
45
49
|
//#endregion
|
|
46
50
|
//#region Tasks
|
|
47
51
|
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RefreshPublicGtfsDepartureCacheTask, RefreshPublicGtfsDepartureCacheTask_1.RefreshPublicGtfsDepartureCacheTask);
|
|
52
|
+
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DownloadDeparturesPresetsTask, DownloadDeparturesPresetsTask_1.DownloadDeparturesPresetsTask);
|
|
53
|
+
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.CheckForNewDeparturesPresetsTask, CheckForNewDeparturesPresetsTask_1.CheckForNewDeparturesPresetsTask);
|
|
48
54
|
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,uEAA4C;AAC5C,qFAA8F;AAC9F,iEAAoF;AACpF,wDAAqD;AACrD,gFAA6E;AAC7E,4EAAyE;AACzE,8FAA2F;AAC3F,sGAAmG;AACnG,8FAA2F;AAC3F,4DAAkE;AAClE,6EAA0E;AAC1E,8GAA2G;AAC3G,wFAAqF;AACrF,yHAAsH;AACtH,yGAAsG;AACtG,2FAAwF;AACxF,uEAAoE;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,uEAA4C;AAC5C,qFAA8F;AAC9F,iEAAoF;AACpF,wDAAqD;AACrD,gFAA6E;AAC7E,4EAAyE;AACzE,8FAA2F;AAC3F,sGAAmG;AACnG,8FAA2F;AAC3F,4DAAkE;AAClE,6EAA0E;AAC1E,8GAA2G;AAC3G,wFAAqF;AACrF,yHAAsH;AACtH,yGAAsG;AACtG,2FAAwF;AACxF,uEAAoE;AACpE,4GAAyG;AACzG,gHAA6G;AAC7G,0GAAuG;AAEvG,wBAAwB;AACxB,MAAM,kBAAkB,GAAwB,iBAAY,CAAC,oBAAoB,EAAE,CAAC;AA6C3E,gDAAkB;AA5C3B,YAAY;AAEZ,qBAAqB;AACrB,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;AACnH,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;AACvH,YAAY;AAEZ,sBAAsB;AACtB,kBAAkB,CAAC,iBAAiB,CAChC,iDAAuB,CAAC,yBAAyB,EACjD,qDAAyB,CAC5B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;AACtF,kBAAkB,CAAC,QAAQ,CAAC,iDAAuB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;AAC9G,kBAAkB,CAAC,QAAQ,CAAC,iDAAuB,CAAC,mBAAmB,EAAE,kCAAoB,CAAC,CAAC;AAC/F,kBAAkB,CAAC,QAAQ,CAAC,iDAAuB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;AAClH,YAAY;AAEZ,yBAAyB;AACzB,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AAC/G,kBAAkB,CAAC,iBAAiB,CAChC,iDAAuB,CAAC,kCAAkC,EAC1D,uEAAkC,CACrC,CAAC;AACF,YAAY;AAEZ,gBAAgB;AAChB,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;AAC/F,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC;KACzG,QAAQ,CAAC,iDAAuB,CAAC,gBAAgB,EAAE,mCAAgB,EAAE,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC;KACxG,gBAAgB,CAAC,iDAAuB,CAAC,kBAAkB,EAAE,IAAI,2BAAkB,CAAC,sBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAE1G,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AAC7G,YAAY;AAEZ,eAAe;AACf,kBAAkB,CAAC,iBAAiB,CAChC,iDAAuB,CAAC,mCAAmC,EAC3D,yEAAmC,CACtC,CAAC;AACF,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;AAC3H,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC"}
|
|
@@ -13,5 +13,8 @@ declare const RopidGtfsContainerToken: {
|
|
|
13
13
|
DeparturePresetsFacade: symbol;
|
|
14
14
|
RopidGtfsFacade: symbol;
|
|
15
15
|
RefreshPublicGtfsDepartureCacheTask: symbol;
|
|
16
|
+
DeparturesPresetsDataSource: symbol;
|
|
17
|
+
CheckForNewDeparturesPresetsTask: symbol;
|
|
18
|
+
DownloadDeparturesPresetsTask: symbol;
|
|
16
19
|
};
|
|
17
20
|
export { RopidGtfsContainerToken };
|
|
@@ -16,6 +16,9 @@ const RopidGtfsContainerToken = {
|
|
|
16
16
|
DeparturePresetsFacade: Symbol(),
|
|
17
17
|
RopidGtfsFacade: Symbol(),
|
|
18
18
|
RefreshPublicGtfsDepartureCacheTask: Symbol(),
|
|
19
|
+
DeparturesPresetsDataSource: Symbol(),
|
|
20
|
+
CheckForNewDeparturesPresetsTask: Symbol(),
|
|
21
|
+
DownloadDeparturesPresetsTask: Symbol(),
|
|
19
22
|
};
|
|
20
23
|
exports.RopidGtfsContainerToken = RopidGtfsContainerToken;
|
|
21
24
|
//# sourceMappingURL=RopidGtfsContainerToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RopidGtfsContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,EAAE;IACnC,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,kBAAkB,EAAE,MAAM,EAAE;IAC5B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,6BAA6B,EAAE,MAAM,EAAE;IACvC,sBAAsB,EAAE,MAAM,EAAE;IAChC,eAAe,EAAE,MAAM,EAAE;IACzB,mCAAmC,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"RopidGtfsContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,EAAE;IACnC,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,kBAAkB,EAAE,MAAM,EAAE;IAC5B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,6BAA6B,EAAE,MAAM,EAAE;IACvC,sBAAsB,EAAE,MAAM,EAAE;IAChC,eAAe,EAAE,MAAM,EAAE;IACzB,mCAAmC,EAAE,MAAM,EAAE;IAC7C,2BAA2B,EAAE,MAAM,EAAE;IACrC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,6BAA6B,EAAE,MAAM,EAAE;CAC1C,CAAC;AAEO,0DAAuB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { AbstractWorker } from "@golemio/core/dist/integration-engine/workers";
|
|
1
|
+
import { AbstractTask, AbstractWorker } from "@golemio/core/dist/integration-engine/workers";
|
|
2
|
+
import { AbstractTaskJsonSchema } from "@golemio/core/dist/integration-engine/workers/AbstractTaskJsonSchema";
|
|
2
3
|
export declare class PresetWorker extends AbstractWorker {
|
|
3
4
|
protected name: string;
|
|
4
5
|
constructor();
|
|
6
|
+
registerTask: (task: AbstractTaskJsonSchema<any> | AbstractTask<any>) => void;
|
|
5
7
|
}
|
|
@@ -5,14 +5,22 @@ const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
|
5
5
|
const CollectAndSaveLogsTask_1 = require("./tasks/CollectAndSaveLogsTask");
|
|
6
6
|
const ProcessAndSendLogsTask_1 = require("./tasks/ProcessAndSendLogsTask");
|
|
7
7
|
const SavePresetsDataTask_1 = require("./tasks/SavePresetsDataTask");
|
|
8
|
+
const Di_1 = require("../../ioc/Di");
|
|
9
|
+
const RopidGtfsContainerToken_1 = require("../../ioc/RopidGtfsContainerToken");
|
|
8
10
|
class PresetWorker extends workers_1.AbstractWorker {
|
|
9
11
|
constructor() {
|
|
10
12
|
super();
|
|
11
13
|
this.name = "RopidPresets";
|
|
14
|
+
this.registerTask = (task) => {
|
|
15
|
+
super.registerTask(task);
|
|
16
|
+
task.queuePrefix = this.getQueuePrefix();
|
|
17
|
+
};
|
|
12
18
|
// Register tasks
|
|
13
19
|
this.registerTask(new SavePresetsDataTask_1.SavePresetsDataTask(this.getQueuePrefix()));
|
|
14
20
|
this.registerTask(new CollectAndSaveLogsTask_1.CollectAndSaveLogsTask(this.getQueuePrefix()));
|
|
15
21
|
this.registerTask(new ProcessAndSendLogsTask_1.ProcessAndSendLogsTask(this.getQueuePrefix()));
|
|
22
|
+
this.registerTask(Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.CheckForNewDeparturesPresetsTask));
|
|
23
|
+
this.registerTask(Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DownloadDeparturesPresetsTask));
|
|
16
24
|
}
|
|
17
25
|
}
|
|
18
26
|
exports.PresetWorker = PresetWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresetWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/workers/presets/PresetWorker.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"PresetWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/workers/presets/PresetWorker.ts"],"names":[],"mappings":";;;AAAA,2EAA6F;AAC7F,2EAAwE;AACxE,2EAAwE;AACxE,qEAAkE;AAElE,qCAA2D;AAC3D,+EAAqF;AAIrF,MAAa,YAAa,SAAQ,wBAAc;IAG5C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,cAAc,CAAC;QAkBzB,iBAAY,GAAG,CAAC,IAAqD,EAAQ,EAAE;YAClF,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAhBE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,yCAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAAmC,iDAAuB,CAAC,gCAAgC,CAAC,CACzH,CAAC;QACF,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAAgC,iDAAuB,CAAC,6BAA6B,CAAC,CACnH,CAAC;IACN,CAAC;CAMJ;AAvBD,oCAuBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IRopidDeparturesPreset } from "../../../../../schema-definitions/ropid-departures-presets";
|
|
2
|
+
import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
|
|
3
|
+
export interface IDeparturesPresetsData {
|
|
4
|
+
data: IRopidDeparturesPreset[];
|
|
5
|
+
}
|
|
6
|
+
export declare class DeparturesPresetsDataSource {
|
|
7
|
+
private config;
|
|
8
|
+
private departurePresets;
|
|
9
|
+
constructor(config: ISimpleConfig);
|
|
10
|
+
getAll(): Promise<IDeparturesPresetsData>;
|
|
11
|
+
getLastModified(): Promise<string>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DeparturesPresetsDataSource = void 0;
|
|
16
|
+
const ropid_departures_presets_1 = require("../../../../../schema-definitions/ropid-departures-presets");
|
|
17
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
18
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
19
|
+
const RetryDataSource_1 = require("@golemio/core/dist/integration-engine/datasources/RetryDataSource");
|
|
20
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
21
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
22
|
+
let DeparturesPresetsDataSource = exports.DeparturesPresetsDataSource = class DeparturesPresetsDataSource {
|
|
23
|
+
constructor(config) {
|
|
24
|
+
this.config = config;
|
|
25
|
+
this.departurePresets = new RetryDataSource_1.RetryDataSource(ropid_departures_presets_1.RopidDeparturesPresets.name + "DataSource", new integration_engine_1.FTPProtocolStrategy({
|
|
26
|
+
filename: this.config.getValue("module.RopidDeparturesPresetsFilename", ""),
|
|
27
|
+
path: this.config.getValue("module.RopidDeparturesPresetsPath", ""),
|
|
28
|
+
url: this.config.getValue("module.RopidFTP", ""),
|
|
29
|
+
encoding: "utf8",
|
|
30
|
+
}), new integration_engine_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(ropid_departures_presets_1.RopidDeparturesPresets.name + "DataSource", ropid_departures_presets_1.RopidDeparturesPresets.datasourceJsonSchema));
|
|
31
|
+
}
|
|
32
|
+
getAll() {
|
|
33
|
+
return this.departurePresets.getAll();
|
|
34
|
+
}
|
|
35
|
+
getLastModified() {
|
|
36
|
+
return this.departurePresets.getLastModified();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.DeparturesPresetsDataSource = DeparturesPresetsDataSource = __decorate([
|
|
40
|
+
(0, tsyringe_1.injectable)(),
|
|
41
|
+
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
|
|
42
|
+
__metadata("design:paramtypes", [Object])
|
|
43
|
+
], DeparturesPresetsDataSource);
|
|
44
|
+
//# sourceMappingURL=DeparturesPresetsDatasource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeparturesPresetsDatasource.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yGAA+F;AAE/F,wEAAqE;AACrE,8EAAkG;AAClG,uGAAoG;AACpG,mFAAkF;AAClF,iEAAwE;AAQjE,IAAM,2BAA2B,yCAAjC,MAAM,2BAA2B;IAGpC,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACrE,IAAI,CAAC,gBAAgB,GAAG,IAAI,iCAAe,CACvC,iDAAsB,CAAC,IAAI,GAAG,YAAY,EAC1C,IAAI,wCAAmB,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,EAAE,EAAE,CAAC;YAC3E,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE,EAAE,CAAC;YACnE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAkB;YACjE,QAAQ,EAAE,MAAM;SACnB,CAAC,EACF,IAAI,yCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,iDAAsB,CAAC,IAAI,GAAG,YAAY,EAAE,iDAAsB,CAAC,oBAAoB,CAAC,CACnH,CAAC;IACN,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC;CACJ,CAAA;sCAxBY,2BAA2B;IADvC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GAHlC,2BAA2B,CAwBvC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RopidGtfsMetadataRepository } from "../../../RopidGtfsMetadataRepository";
|
|
2
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
|
|
3
|
+
import { DeparturesPresetsDataSource } from "../data-access/DeparturesPresetsDatasource";
|
|
4
|
+
export declare class CheckForNewDeparturesPresetsTask extends AbstractEmptyTask {
|
|
5
|
+
private metadataRepository;
|
|
6
|
+
private departuresPresetsDataSource;
|
|
7
|
+
readonly queueName = "checkForNewDeparturesPresets";
|
|
8
|
+
readonly queueTtl: number;
|
|
9
|
+
constructor(metadataRepository: RopidGtfsMetadataRepository, departuresPresetsDataSource: DeparturesPresetsDataSource);
|
|
10
|
+
protected execute(): Promise<void>;
|
|
11
|
+
}
|
package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.CheckForNewDeparturesPresetsTask = void 0;
|
|
25
|
+
const RopidGtfsMetadataRepository_1 = require("../../../RopidGtfsMetadataRepository");
|
|
26
|
+
const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
|
|
27
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
28
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
29
|
+
const RopidGtfsFacade_1 = require("../../../RopidGtfsFacade");
|
|
30
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
31
|
+
const DeparturesPresetsDatasource_1 = require("../data-access/DeparturesPresetsDatasource");
|
|
32
|
+
const ropid_gtfs_1 = require("../../../../../schema-definitions/ropid-gtfs");
|
|
33
|
+
let CheckForNewDeparturesPresetsTask = exports.CheckForNewDeparturesPresetsTask = class CheckForNewDeparturesPresetsTask extends integration_engine_1.AbstractEmptyTask {
|
|
34
|
+
constructor(metadataRepository, departuresPresetsDataSource) {
|
|
35
|
+
super(ropid_gtfs_1.RopidGTFS.name.toLowerCase());
|
|
36
|
+
this.metadataRepository = metadataRepository;
|
|
37
|
+
this.departuresPresetsDataSource = departuresPresetsDataSource;
|
|
38
|
+
this.queueName = "checkForNewDeparturesPresets";
|
|
39
|
+
this.queueTtl = 59 * 1000 * 4; // 4 minutes
|
|
40
|
+
}
|
|
41
|
+
execute() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
try {
|
|
44
|
+
const departuresPresetsServerLastModified = yield this.departuresPresetsDataSource.getLastModified();
|
|
45
|
+
const departuresPresetsDbLastModified = yield this.metadataRepository.getLastModified(RopidGtfsFacade_1.DatasetEnum.DEPARTURES_PRESETS);
|
|
46
|
+
if (departuresPresetsServerLastModified !== departuresPresetsDbLastModified.lastModified) {
|
|
47
|
+
yield integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "downloadDeparturesPresets", {});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log(err);
|
|
56
|
+
throw new golemio_errors_1.GeneralError("Error while checking for new departures presets", this.constructor.name, err);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
exports.CheckForNewDeparturesPresetsTask = CheckForNewDeparturesPresetsTask = __decorate([
|
|
63
|
+
(0, tsyringe_1.injectable)(),
|
|
64
|
+
__param(0, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsMetadataRepository)),
|
|
65
|
+
__param(1, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DeparturesPresetsDataSource)),
|
|
66
|
+
__metadata("design:paramtypes", [RopidGtfsMetadataRepository_1.RopidGtfsMetadataRepository,
|
|
67
|
+
DeparturesPresetsDatasource_1.DeparturesPresetsDataSource])
|
|
68
|
+
], CheckForNewDeparturesPresetsTask);
|
|
69
|
+
//# sourceMappingURL=CheckForNewDeparturesPresetsTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckForNewDeparturesPresetsTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,sFAAyF;AACzF,kFAAqF;AACrF,8EAAwF;AACxF,iEAAwE;AACxE,8DAAuD;AACvD,6EAA8F;AAC9F,4FAAyF;AACzF,6EAA4C;AAGrC,IAAM,gCAAgC,8CAAtC,MAAM,gCAAiC,SAAQ,sCAAiB;IAInE,YACiE,kBAAuD,EAEpH,2BAAgE;QAEhE,KAAK,CAAC,sBAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAJiC,uBAAkB,GAAlB,kBAAkB,CAA6B;QAE5G,gCAA2B,GAA3B,2BAA2B,CAA6B;QANpD,cAAS,GAAG,8BAA8B,CAAC;QAC3C,aAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY;IAQtD,CAAC;IAEe,OAAO;;YACnB,IAAI;gBACA,MAAM,mCAAmC,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,CAAC;gBACrG,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,6BAAW,CAAC,kBAAkB,CAAC,CAAC;gBACtH,IAAI,mCAAmC,KAAK,+BAA+B,CAAC,YAAY,EAAE;oBACtF,MAAM,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;iBAC/F;aACJ;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACjB,MAAM,IAAI,6BAAY,CAAC,iDAAiD,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBACzG;aACJ;QACL,CAAC;KAAA;CACJ,CAAA;2CA5BY,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,2BAA2B,CAAC,CAAA;IAC3D,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,2BAA2B,CAAC,CAAA;qCAD6B,yDAA2B;QAE/E,yDAA2B;GAP3D,gCAAgC,CA4B5C"}
|
package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DeparturePresetsFacade } from "../../../facade/DeparturePresetsFacade";
|
|
2
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
|
|
3
|
+
import { DeparturesPresetsDataSource } from "../data-access/DeparturesPresetsDatasource";
|
|
4
|
+
export declare class DownloadDeparturesPresetsTask extends AbstractEmptyTask {
|
|
5
|
+
private departuresPresetsDataSource;
|
|
6
|
+
private facade;
|
|
7
|
+
queueName: string;
|
|
8
|
+
queueTtl: number;
|
|
9
|
+
constructor(departuresPresetsDataSource: DeparturesPresetsDataSource, facade: DeparturePresetsFacade);
|
|
10
|
+
protected execute(): Promise<void>;
|
|
11
|
+
}
|
package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.DownloadDeparturesPresetsTask = void 0;
|
|
25
|
+
const DeparturePresetsFacade_1 = require("../../../facade/DeparturePresetsFacade");
|
|
26
|
+
const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
|
|
27
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
28
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
29
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
30
|
+
const DeparturesPresetsDatasource_1 = require("../data-access/DeparturesPresetsDatasource");
|
|
31
|
+
const ropid_gtfs_1 = require("../../../../../schema-definitions/ropid-gtfs");
|
|
32
|
+
let DownloadDeparturesPresetsTask = exports.DownloadDeparturesPresetsTask = class DownloadDeparturesPresetsTask extends integration_engine_1.AbstractEmptyTask {
|
|
33
|
+
constructor(departuresPresetsDataSource, facade) {
|
|
34
|
+
super(ropid_gtfs_1.RopidGTFS.name.toLowerCase());
|
|
35
|
+
this.departuresPresetsDataSource = departuresPresetsDataSource;
|
|
36
|
+
this.facade = facade;
|
|
37
|
+
this.queueName = "downloadDeparturesPresets";
|
|
38
|
+
this.queueTtl = 4 * 60 * 1000; // 4 minutes
|
|
39
|
+
}
|
|
40
|
+
execute() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
try {
|
|
43
|
+
const file = yield this.departuresPresetsDataSource.getAll();
|
|
44
|
+
const lastModified = yield this.departuresPresetsDataSource.getLastModified();
|
|
45
|
+
yield this.facade.handleNewDeparturePresets(file.data, lastModified);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
console.log(err);
|
|
49
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new golemio_errors_1.GeneralError("Error while downloading departures presets: " + err.message, this.constructor.name, err);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
exports.DownloadDeparturesPresetsTask = DownloadDeparturesPresetsTask = __decorate([
|
|
60
|
+
(0, tsyringe_1.injectable)(),
|
|
61
|
+
__param(0, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DeparturesPresetsDataSource)),
|
|
62
|
+
__param(1, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DeparturePresetsFacade)),
|
|
63
|
+
__metadata("design:paramtypes", [DeparturesPresetsDatasource_1.DeparturesPresetsDataSource,
|
|
64
|
+
DeparturePresetsFacade_1.DeparturePresetsFacade])
|
|
65
|
+
], DownloadDeparturesPresetsTask);
|
|
66
|
+
//# sourceMappingURL=DownloadDeparturesPresetsTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DownloadDeparturesPresetsTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAsF;AACtF,kFAAqF;AACrF,8EAA0E;AAC1E,6EAA8F;AAC9F,iEAAwE;AACxE,4FAAyF;AAEzF,6EAA4C;AAGrC,IAAM,6BAA6B,2CAAnC,MAAM,6BAA8B,SAAQ,sCAAiB;IAIhE,YAEI,2BAAgE,EACR,MAAsC;QAE9F,KAAK,CAAC,sBAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAH5B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACA,WAAM,GAAN,MAAM,CAAwB;QANlG,cAAS,GAAG,2BAA2B,CAAC;QACxC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;IAQtC,CAAC;IAEe,OAAO;;YACnB,IAAI;gBACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC;gBAC7D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,CAAC;gBAC9E,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aACxE;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,8CAA8C,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBACpH;aACJ;QACL,CAAC;KAAA;CACJ,CAAA;wCA1BY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,2BAA2B,CAAC,CAAA;IAE3D,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,sBAAsB,CAAC,CAAA;qCADlB,yDAA2B;QACQ,+CAAsB;GAPzF,6BAA6B,CA0BzC"}
|
|
@@ -140,12 +140,12 @@ _:warning: Původním záměrem bylo využití OIS číselníku během zpracová
|
|
|
140
140
|
- příklad vstupnich dat: [ropiddeparturespresets-data.json](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/test/integration-engine/ropid-gtfs/data/ropiddeparturespresets-data.json)
|
|
141
141
|
- frekvence stahování
|
|
142
142
|
- cron definice:
|
|
143
|
-
- cron.vehicle-positions.
|
|
143
|
+
- cron.vehicle-positions.ropidpresets.checkForNewDeparturesPresets
|
|
144
144
|
- rabin `15 */4 * * * *`
|
|
145
145
|
- prod `15 */4 * * * *`
|
|
146
146
|
- názvy rabbitmq front
|
|
147
|
-
- vehicle-positions.
|
|
148
|
-
- vehicle-positions.
|
|
147
|
+
- vehicle-positions.ropidpresets.checkForNewDeparturesPresets
|
|
148
|
+
- vehicle-positions.ropidpresets.downloadDeparturesPresets
|
|
149
149
|
|
|
150
150
|
#### _VYMI výluky a mimořádnosti_
|
|
151
151
|
|
|
@@ -394,41 +394,6 @@ _:warning: Původním záměrem bylo využití OIS číselníku během zpracová
|
|
|
394
394
|
|
|
395
395
|
Všechny tabulky se nachází ve schématu `pid`
|
|
396
396
|
|
|
397
|
-
### _LegacyRopidGTFSWorker_
|
|
398
|
-
|
|
399
|
-
Worker má na starost aktualizaci presets číselníků
|
|
400
|
-
|
|
401
|
-
#### _checkForNewDeparturesPresets()_
|
|
402
|
-
|
|
403
|
-
- vstupní rabbitmq fronta
|
|
404
|
-
- název: vehicle-positions.ropidgtfs.checkForNewDeparturesPresets
|
|
405
|
-
- TTL: 4 minuty
|
|
406
|
-
- parametry: žádné
|
|
407
|
-
- závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
408
|
-
- název: vehicle-positions.ropidgtfs.downloadDeparturesPresets
|
|
409
|
-
- datové zdroje
|
|
410
|
-
- ROPID FTP
|
|
411
|
-
- transformace
|
|
412
|
-
- žádné
|
|
413
|
-
- data modely
|
|
414
|
-
- RopidGTFSMetadataModel `ropidgtfs_metadata`
|
|
415
|
-
|
|
416
|
-
#### _downloadDeparturesPresets()_
|
|
417
|
-
|
|
418
|
-
- vstupní rabbitmq fronta
|
|
419
|
-
- název: vehicle-positions.ropidgtfs.downloadDeparturesPresets
|
|
420
|
-
- TTL: 4 minuty
|
|
421
|
-
- parametry: žádné
|
|
422
|
-
- závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
423
|
-
- žádné
|
|
424
|
-
- datové zdroje
|
|
425
|
-
- ROPID FTP
|
|
426
|
-
- transformace
|
|
427
|
-
- [RopidDeparturesPresetsTransformation](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-gtfs/transformations/RopidDeparturesPresetsTransformation.ts)
|
|
428
|
-
- data modely
|
|
429
|
-
- RopidGTFSMetadataModel `ropidgtfs_metadata`,
|
|
430
|
-
- RopidDeparturesPresetsModel `ropid_departures_presets`
|
|
431
|
-
|
|
432
397
|
### TimetableWorker
|
|
433
398
|
|
|
434
399
|
#### task _CheckForNewData_
|
|
@@ -616,6 +581,37 @@ Task se stará o aktualizaci cache pro public odjezdy. Pouští se pravidelně c
|
|
|
616
581
|
- RopidDeparturesPresetsModel `ropid_departures_presets`
|
|
617
582
|
- PresetLogModel `ropid_departures_preset_logs`
|
|
618
583
|
|
|
584
|
+
#### _task: CheckForNewDeparturesPresetsTask_
|
|
585
|
+
|
|
586
|
+
- vstupní rabbitmq fronta
|
|
587
|
+
- název: vehicle-positions.ropidpresets.checkForNewDeparturesPresets
|
|
588
|
+
- TTL: 4 minuty
|
|
589
|
+
- parametry: žádné
|
|
590
|
+
- závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
591
|
+
- název: vehicle-positions.ropidpresets.downloadDeparturesPresets
|
|
592
|
+
- datové zdroje
|
|
593
|
+
- ROPID FTP
|
|
594
|
+
- transformace
|
|
595
|
+
- žádné
|
|
596
|
+
- data modely
|
|
597
|
+
- RopidGTFSMetadataModel `ropidgtfs_metadata`
|
|
598
|
+
|
|
599
|
+
#### _DownloadDeparturesPresetsTask_
|
|
600
|
+
|
|
601
|
+
- vstupní rabbitmq fronta
|
|
602
|
+
- název: vehicle-positions.ropidpresets.downloadDeparturesPresets
|
|
603
|
+
- TTL: 4 minuty
|
|
604
|
+
- parametry: žádné
|
|
605
|
+
- závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
606
|
+
- žádné
|
|
607
|
+
- datové zdroje
|
|
608
|
+
- ROPID FTP
|
|
609
|
+
- transformace
|
|
610
|
+
- [RopidDeparturesPresetsTransformation](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-gtfs/transformations/RopidDeparturesPresetsTransformation.ts)
|
|
611
|
+
- data modely
|
|
612
|
+
- RopidGTFSMetadataModel `ropidgtfs_metadata`,
|
|
613
|
+
- RopidDeparturesPresetsModel `ropid_departures_presets`
|
|
614
|
+
|
|
619
615
|
### _RailtrackWorker_
|
|
620
616
|
|
|
621
617
|
Worker má na starost aktualizaci kolejových obvodů
|
package/package.json
CHANGED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.queueDefinitions = void 0;
|
|
4
|
-
const LegacyRopidGTFSWorker_1 = require("./ropid-gtfs/LegacyRopidGTFSWorker");
|
|
5
|
-
const ropid_gtfs_1 = require("../schema-definitions/ropid-gtfs");
|
|
6
|
-
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Use the new worker definitions
|
|
9
|
-
*/
|
|
10
|
-
const queueDefinitions = [
|
|
11
|
-
// Ropid GTFS Queue Definitions
|
|
12
|
-
{
|
|
13
|
-
name: ropid_gtfs_1.RopidGTFS.name,
|
|
14
|
-
queuePrefix: config_1.config.RABBIT_EXCHANGE_NAME + "." + ropid_gtfs_1.RopidGTFS.name.toLowerCase(),
|
|
15
|
-
queues: [
|
|
16
|
-
{
|
|
17
|
-
name: "checkForNewDeparturesPresets",
|
|
18
|
-
options: {
|
|
19
|
-
deadLetterExchange: config_1.config.RABBIT_EXCHANGE_NAME,
|
|
20
|
-
deadLetterRoutingKey: "dead",
|
|
21
|
-
messageTtl: 4 * 60 * 1000, // 4 minutes
|
|
22
|
-
},
|
|
23
|
-
worker: LegacyRopidGTFSWorker_1.LegacyRopidGTFSWorker,
|
|
24
|
-
workerMethod: "checkForNewDeparturesPresets",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "downloadDeparturesPresets",
|
|
28
|
-
options: {
|
|
29
|
-
deadLetterExchange: config_1.config.RABBIT_EXCHANGE_NAME,
|
|
30
|
-
deadLetterRoutingKey: "dead",
|
|
31
|
-
messageTtl: 4 * 60 * 1000, // 4 minutes
|
|
32
|
-
},
|
|
33
|
-
worker: LegacyRopidGTFSWorker_1.LegacyRopidGTFSWorker,
|
|
34
|
-
workerMethod: "downloadDeparturesPresets",
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
},
|
|
38
|
-
];
|
|
39
|
-
exports.queueDefinitions = queueDefinitions;
|
|
40
|
-
//# sourceMappingURL=queueDefinitions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queueDefinitions.js","sourceRoot":"","sources":["../../src/integration-engine/queueDefinitions.ts"],"names":[],"mappings":";;;AAAA,8EAA6E;AAC7E,iEAA4C;AAC5C,yEAAsE;AAGtE;;GAEG;AACH,MAAM,gBAAgB,GAAuB;IACzC,+BAA+B;IAC/B;QACI,IAAI,EAAE,sBAAS,CAAC,IAAI;QACpB,WAAW,EAAE,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,sBAAS,CAAC,IAAI,CAAC,WAAW,EAAE;QAC7E,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;iBAC1C;gBACD,MAAM,EAAE,6CAAqB;gBAC7B,YAAY,EAAE,8BAA8B;aAC/C;YACD;gBACI,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;iBAC1C;gBACD,MAAM,EAAE,6CAAqB;gBAC7B,YAAY,EAAE,2BAA2B;aAC5C;SACJ;KACJ;CACJ,CAAC;AAEO,4CAAgB"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { IRopidDeparturesPreset } from "../../schema-definitions/ropid-departures-presets";
|
|
2
|
-
import { BaseWorker } from "@golemio/core/dist/integration-engine/workers";
|
|
3
|
-
export interface IDeparturesPresetsData {
|
|
4
|
-
data: IRopidDeparturesPreset[];
|
|
5
|
-
}
|
|
6
|
-
export declare class LegacyRopidGTFSWorker extends BaseWorker {
|
|
7
|
-
private dataSourceDeparturesPresets;
|
|
8
|
-
private metadataRepository;
|
|
9
|
-
private readonly queuePrefix;
|
|
10
|
-
constructor();
|
|
11
|
-
/**
|
|
12
|
-
* Queue listener method - triggers for new presets only
|
|
13
|
-
*/
|
|
14
|
-
checkForNewDeparturesPresets: () => Promise<void>;
|
|
15
|
-
/**
|
|
16
|
-
* Queue listener method - triggers processing of DEPARTURES_PRESETS dataset
|
|
17
|
-
*/
|
|
18
|
-
downloadDeparturesPresets: () => Promise<void>;
|
|
19
|
-
}
|
|
@@ -1,79 +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.LegacyRopidGTFSWorker = void 0;
|
|
13
|
-
const ropid_departures_presets_1 = require("../../schema-definitions/ropid-departures-presets");
|
|
14
|
-
const ropid_gtfs_1 = require("../../schema-definitions/ropid-gtfs");
|
|
15
|
-
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
16
|
-
const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
|
|
17
|
-
const RetryDataSource_1 = require("@golemio/core/dist/integration-engine/datasources/RetryDataSource");
|
|
18
|
-
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
19
|
-
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
20
|
-
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
21
|
-
const _1 = require(".");
|
|
22
|
-
const Di_1 = require("./ioc/Di");
|
|
23
|
-
const RopidGtfsContainerToken_1 = require("./ioc/RopidGtfsContainerToken");
|
|
24
|
-
class LegacyRopidGTFSWorker extends workers_1.BaseWorker {
|
|
25
|
-
constructor() {
|
|
26
|
-
super();
|
|
27
|
-
/**
|
|
28
|
-
* Queue listener method - triggers for new presets only
|
|
29
|
-
*/
|
|
30
|
-
this.checkForNewDeparturesPresets = () => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
// checking DEPARTURES_PRESETS dataset
|
|
32
|
-
try {
|
|
33
|
-
const departuresPresetsServerLastModified = yield this.dataSourceDeparturesPresets.getLastModified();
|
|
34
|
-
const departuresPresetsDbLastModified = yield this.metadataRepository.getLastModified(_1.DatasetEnum.DEPARTURES_PRESETS);
|
|
35
|
-
if (departuresPresetsServerLastModified !== departuresPresetsDbLastModified.lastModified) {
|
|
36
|
-
yield this.sendMessageToExchange("workers." + this.queuePrefix + ".downloadDeparturesPresets", "Just do it!");
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
41
|
-
throw err;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
throw new golemio_errors_1.GeneralError("Error while checking for new departures presets", this.constructor.name, err);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
/**
|
|
49
|
-
* Queue listener method - triggers processing of DEPARTURES_PRESETS dataset
|
|
50
|
-
*/
|
|
51
|
-
this.downloadDeparturesPresets = () => __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
try {
|
|
53
|
-
const file = yield this.dataSourceDeparturesPresets.getAll();
|
|
54
|
-
const lastModified = yield this.dataSourceDeparturesPresets.getLastModified();
|
|
55
|
-
const facade = Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DeparturePresetsFacade);
|
|
56
|
-
yield facade.handleNewDeparturePresets(file.data, lastModified);
|
|
57
|
-
}
|
|
58
|
-
catch (err) {
|
|
59
|
-
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
60
|
-
throw err;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
throw new golemio_errors_1.GeneralError("Error while downloading departures presets: " + err.message, this.constructor.name, err);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
this.metadataRepository = Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsMetadataRepository);
|
|
68
|
-
// Ropid Departures Presets
|
|
69
|
-
this.dataSourceDeparturesPresets = new RetryDataSource_1.RetryDataSource(ropid_departures_presets_1.RopidDeparturesPresets.name + "DataSource", new datasources_1.FTPProtocolStrategy({
|
|
70
|
-
filename: config_1.config.datasources.RopidDeparturesPresetsFilename,
|
|
71
|
-
path: config_1.config.datasources.RopidDeparturesPresetsPath,
|
|
72
|
-
url: config_1.config.datasources.RopidFTP,
|
|
73
|
-
encoding: "utf8",
|
|
74
|
-
}), new datasources_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(ropid_departures_presets_1.RopidDeparturesPresets.name + "DataSource", ropid_departures_presets_1.RopidDeparturesPresets.datasourceJsonSchema));
|
|
75
|
-
this.queuePrefix = config_1.config.RABBIT_EXCHANGE_NAME + "." + ropid_gtfs_1.RopidGTFS.name.toLowerCase();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.LegacyRopidGTFSWorker = LegacyRopidGTFSWorker;
|
|
79
|
-
//# sourceMappingURL=LegacyRopidGTFSWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LegacyRopidGTFSWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gGAA+F;AAC/F,oEAA4C;AAC5C,yEAAsE;AACtE,mFAA0H;AAC1H,uGAAoG;AACpG,2EAA2E;AAC3E,6EAA8F;AAC9F,mFAAkF;AAClF,wBAAgC;AAGhC,iCAA8C;AAC9C,2EAAwE;AAMxE,MAAa,qBAAsB,SAAQ,oBAAU;IAKjD;QACI,KAAK,EAAE,CAAC;QAqBZ;;WAEG;QACI,iCAA4B,GAAG,GAAwB,EAAE;YAC5D,sCAAsC;YACtC,IAAI;gBACA,MAAM,mCAAmC,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,CAAC;gBACrG,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,cAAW,CAAC,kBAAkB,CAAC,CAAC;gBACtH,IAAI,mCAAmC,KAAK,+BAA+B,CAAC,YAAY,EAAE;oBACtF,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,EAAE,aAAa,CAAC,CAAC;iBACjH;aACJ;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,iDAAiD,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBACzG;aACJ;QACL,CAAC,CAAA,CAAC;QAEF;;WAEG;QACI,8BAAyB,GAAG,GAAwB,EAAE;YACzD,IAAI;gBACA,MAAM,IAAI,GAA2B,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC;gBACrF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,CAAC;gBAE9E,MAAM,MAAM,GAAG,uBAAkB,CAAC,OAAO,CAAyB,iDAAuB,CAAC,sBAAsB,CAAC,CAAC;gBAClH,MAAM,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aACnE;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,8CAA8C,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBACpH;aACJ;QACL,CAAC,CAAA,CAAC;QAzDE,IAAI,CAAC,kBAAkB,GAAG,uBAAkB,CAAC,OAAO,CAChD,iDAAuB,CAAC,2BAA2B,CACtD,CAAC;QAEF,2BAA2B;QAC3B,IAAI,CAAC,2BAA2B,GAAG,IAAI,iCAAe,CAClD,iDAAsB,CAAC,IAAI,GAAG,YAAY,EAC1C,IAAI,iCAAmB,CAAC;YACpB,QAAQ,EAAE,eAAM,CAAC,WAAW,CAAC,8BAA8B;YAC3D,IAAI,EAAE,eAAM,CAAC,WAAW,CAAC,0BAA0B;YACnD,GAAG,EAAE,eAAM,CAAC,WAAW,CAAC,QAAQ;YAChC,QAAQ,EAAE,MAAM;SACnB,CAAC,EACF,IAAI,kCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,iDAAsB,CAAC,IAAI,GAAG,YAAY,EAAE,iDAAsB,CAAC,oBAAoB,CAAC,CACnH,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,sBAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACxF,CAAC;CAwCJ;AAjED,sDAiEC"}
|