@golemio/core 1.4.0 → 1.4.1-dev.761542577

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 (80) hide show
  1. package/dist/helpers/data-access/feature-flags/FeatureFlagServiceFactory.d.ts +13 -0
  2. package/dist/helpers/data-access/feature-flags/FeatureFlagServiceFactory.js +33 -0
  3. package/dist/helpers/data-access/feature-flags/FeatureFlagServiceFactory.js.map +1 -0
  4. package/dist/helpers/data-access/feature-flags/helpers/AbstractFeatureFlagServiceWrapper.d.ts +10 -0
  5. package/dist/helpers/data-access/feature-flags/helpers/AbstractFeatureFlagServiceWrapper.js +27 -0
  6. package/dist/helpers/data-access/feature-flags/helpers/AbstractFeatureFlagServiceWrapper.js.map +1 -0
  7. package/dist/helpers/data-access/feature-flags/helpers/index.d.ts +1 -0
  8. package/dist/helpers/data-access/feature-flags/helpers/index.js +18 -0
  9. package/dist/helpers/data-access/feature-flags/helpers/index.js.map +1 -0
  10. package/dist/helpers/data-access/feature-flags/index.d.ts +4 -0
  11. package/dist/helpers/data-access/feature-flags/index.js +21 -0
  12. package/dist/helpers/data-access/feature-flags/index.js.map +1 -0
  13. package/dist/helpers/data-access/feature-flags/interfaces/IFeatureFlagService.d.ts +5 -0
  14. package/dist/helpers/data-access/feature-flags/interfaces/IFeatureFlagService.js +3 -0
  15. package/dist/helpers/data-access/feature-flags/interfaces/IFeatureFlagService.js.map +1 -0
  16. package/dist/helpers/data-access/feature-flags/interfaces/IFeatureFlagsConfig.d.ts +7 -0
  17. package/dist/helpers/data-access/feature-flags/interfaces/IFeatureFlagsConfig.js +3 -0
  18. package/dist/helpers/data-access/feature-flags/interfaces/IFeatureFlagsConfig.js.map +1 -0
  19. package/dist/helpers/data-access/feature-flags/providers/AbstractFeatureFlagService.d.ts +6 -0
  20. package/dist/helpers/data-access/feature-flags/providers/AbstractFeatureFlagService.js +7 -0
  21. package/dist/helpers/data-access/feature-flags/providers/AbstractFeatureFlagService.js.map +1 -0
  22. package/dist/helpers/data-access/feature-flags/providers/LaunchDarklyFeatureFlagService.d.ts +13 -0
  23. package/dist/helpers/data-access/feature-flags/providers/LaunchDarklyFeatureFlagService.js +76 -0
  24. package/dist/helpers/data-access/feature-flags/providers/LaunchDarklyFeatureFlagService.js.map +1 -0
  25. package/dist/helpers/data-access/feature-flags/providers/NoopFeatureFlagService.d.ts +10 -0
  26. package/dist/helpers/data-access/feature-flags/providers/NoopFeatureFlagService.js +39 -0
  27. package/dist/helpers/data-access/feature-flags/providers/NoopFeatureFlagService.js.map +1 -0
  28. package/dist/helpers/data-access/feature-flags/providers/interfaces/LaunchDarklyInterfaces.d.ts +22 -0
  29. package/dist/helpers/data-access/feature-flags/providers/interfaces/LaunchDarklyInterfaces.js +3 -0
  30. package/dist/helpers/data-access/feature-flags/providers/interfaces/LaunchDarklyInterfaces.js.map +1 -0
  31. package/dist/input-gateway/config/InputGatewayConfiguration.d.ts +9 -7
  32. package/dist/input-gateway/config/InputGatewayConfiguration.js +29 -9
  33. package/dist/input-gateway/config/InputGatewayConfiguration.js.map +1 -1
  34. package/dist/input-gateway/config/abstract.d.ts +2 -9
  35. package/dist/input-gateway/data-access/FeatureFlagServiceWrapper.d.ts +9 -0
  36. package/dist/input-gateway/data-access/FeatureFlagServiceWrapper.js +39 -0
  37. package/dist/input-gateway/data-access/FeatureFlagServiceWrapper.js.map +1 -0
  38. package/dist/input-gateway/data-access/StorageServiceProvider.d.ts +8 -0
  39. package/dist/input-gateway/data-access/StorageServiceProvider.js +39 -0
  40. package/dist/input-gateway/data-access/StorageServiceProvider.js.map +1 -0
  41. package/dist/input-gateway/data-access/index.d.ts +6 -0
  42. package/dist/input-gateway/data-access/index.js +10 -0
  43. package/dist/input-gateway/data-access/index.js.map +1 -0
  44. package/dist/input-gateway/helpers/SaveRawDataMiddleware.d.ts +15 -11
  45. package/dist/input-gateway/helpers/SaveRawDataMiddleware.js +67 -85
  46. package/dist/input-gateway/helpers/SaveRawDataMiddleware.js.map +1 -1
  47. package/dist/input-gateway/ioc/ContainerToken.d.ts +4 -0
  48. package/dist/input-gateway/ioc/ContainerToken.js +4 -0
  49. package/dist/input-gateway/ioc/ContainerToken.js.map +1 -1
  50. package/dist/input-gateway/ioc/Di.js +11 -1
  51. package/dist/input-gateway/ioc/Di.js.map +1 -1
  52. package/dist/integration-engine/config/IntegrationEngineConfiguration.d.ts +2 -0
  53. package/dist/integration-engine/config/IntegrationEngineConfiguration.js +21 -0
  54. package/dist/integration-engine/config/IntegrationEngineConfiguration.js.map +1 -1
  55. package/dist/integration-engine/data-access/FeatureFlagServiceWrapper.d.ts +9 -0
  56. package/dist/integration-engine/data-access/FeatureFlagServiceWrapper.js +39 -0
  57. package/dist/integration-engine/data-access/FeatureFlagServiceWrapper.js.map +1 -0
  58. package/dist/integration-engine/data-access/index.d.ts +6 -1
  59. package/dist/integration-engine/data-access/index.js +6 -1
  60. package/dist/integration-engine/data-access/index.js.map +1 -1
  61. package/dist/integration-engine/ioc/ContainerToken.d.ts +2 -0
  62. package/dist/integration-engine/ioc/ContainerToken.js +2 -0
  63. package/dist/integration-engine/ioc/ContainerToken.js.map +1 -1
  64. package/dist/integration-engine/ioc/Di.js +6 -1
  65. package/dist/integration-engine/ioc/Di.js.map +1 -1
  66. package/dist/output-gateway/config/OutputGatewayConfiguration.d.ts +2 -0
  67. package/dist/output-gateway/config/OutputGatewayConfiguration.js +22 -2
  68. package/dist/output-gateway/config/OutputGatewayConfiguration.js.map +1 -1
  69. package/dist/output-gateway/data-access/FeatureFlagServiceWrapper.d.ts +9 -0
  70. package/dist/output-gateway/data-access/FeatureFlagServiceWrapper.js +39 -0
  71. package/dist/output-gateway/data-access/FeatureFlagServiceWrapper.js.map +1 -0
  72. package/dist/output-gateway/data-access/index.d.ts +5 -0
  73. package/dist/output-gateway/data-access/index.js +9 -0
  74. package/dist/output-gateway/data-access/index.js.map +1 -0
  75. package/dist/output-gateway/ioc/ContainerToken.d.ts +2 -0
  76. package/dist/output-gateway/ioc/ContainerToken.js +2 -0
  77. package/dist/output-gateway/ioc/ContainerToken.js.map +1 -1
  78. package/dist/output-gateway/ioc/Di.js +6 -1
  79. package/dist/output-gateway/ioc/Di.js.map +1 -1
  80. package/package.json +4 -2
@@ -0,0 +1,39 @@
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.StorageServiceProvider = void 0;
16
+ const tsyringe_1 = require("tsyringe");
17
+ const errors_1 = require("@golemio/errors");
18
+ const storage_1 = require("../../helpers/data-access/storage");
19
+ const ioc_1 = require("../ioc");
20
+ let StorageServiceProvider = class StorageServiceProvider {
21
+ constructor(config, log) {
22
+ const service = new storage_1.StorageServiceFactory(config.storage, log).getService(storage_1.StorageProvider.Azure);
23
+ if (!service) {
24
+ throw new errors_1.CustomError(`StorageServiceProvider returned undefined for provider ${storage_1.StorageProvider.Azure}`, false, this.constructor.name);
25
+ }
26
+ this._service = service;
27
+ }
28
+ get service() {
29
+ return this._service;
30
+ }
31
+ };
32
+ StorageServiceProvider = __decorate([
33
+ (0, tsyringe_1.injectable)(),
34
+ __param(0, (0, tsyringe_1.inject)(ioc_1.ContainerToken.Config)),
35
+ __param(1, (0, tsyringe_1.inject)(ioc_1.ContainerToken.Logger)),
36
+ __metadata("design:paramtypes", [Object, Object])
37
+ ], StorageServiceProvider);
38
+ exports.StorageServiceProvider = StorageServiceProvider;
39
+ //# sourceMappingURL=StorageServiceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageServiceProvider.js","sourceRoot":"","sources":["../../../src/input-gateway/data-access/StorageServiceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA8C;AAC9C,4CAA8C;AAC9C,+DAA8G;AAC9G,gCAAyC;AAKzC,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAG/B,YAA2C,MAAsB,EAAiC,GAAY;QAC1G,MAAM,OAAO,GAAG,IAAI,+BAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,yBAAe,CAAC,KAAK,CAAC,CAAC;QAEjG,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,oBAAW,CACjB,0DAA0D,yBAAe,CAAC,KAAK,EAAE,EACjF,KAAK,EACL,IAAI,CAAC,WAAW,CAAC,IAAI,CACxB,CAAC;SACL;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ,CAAA;AApBY,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,MAAM,CAAC,CAAA;IAA0B,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,MAAM,CAAC,CAAA;;GAHxF,sBAAsB,CAoBlC;AApBY,wDAAsB"}
@@ -0,0 +1,6 @@
1
+ import { IFeatureFlagService } from "../../helpers/data-access/feature-flags";
2
+ /**
3
+ * @deprecated For backwards compatibility. Use ioc container instead.
4
+ */
5
+ declare const featureFlagService: IFeatureFlagService;
6
+ export { featureFlagService };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.featureFlagService = void 0;
4
+ const ioc_1 = require("../ioc");
5
+ /**
6
+ * @deprecated For backwards compatibility. Use ioc container instead.
7
+ */
8
+ const featureFlagService = ioc_1.InputGatewayContainer.resolve(ioc_1.ContainerToken.FeatureFlagService);
9
+ exports.featureFlagService = featureFlagService;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/input-gateway/data-access/index.ts"],"names":[],"mappings":";;;AACA,gCAAgE;AAEhE;;GAEG;AACH,MAAM,kBAAkB,GAAG,2BAAqB,CAAC,OAAO,CAAsB,oBAAc,CAAC,kBAAkB,CAAC,CAAC;AAExG,gDAAkB"}
@@ -1,12 +1,16 @@
1
- import { S3 } from "aws-sdk";
2
1
  import { NextFunction, Request, Response } from "express";
3
- export declare const routesRegexp: RegExp;
4
- export declare const headersRegexp: RegExp;
5
- /**
6
- * Middleware function for saving raw data to file
7
- */
8
- export declare const saveRawDataMiddleware: (req: Request, res: Response, next: NextFunction) => void;
9
- /**
10
- * Helper function for saving data to S3
11
- */
12
- export declare const uploadDataToS3: (data: S3.Types.PutObjectRequest, options: S3.ManagedUpload.ManagedUploadOptions, requestUrlPath: string) => void;
2
+ import { ILogger } from "../../helpers";
3
+ import { AbstractStorageService } from "../../helpers/data-access/storage";
4
+ import { IConfiguration } from "../config";
5
+ export declare class SaveRawDataMiddleware {
6
+ private readonly log;
7
+ private storage;
8
+ private readonly storageEnabled;
9
+ private readonly whitelist;
10
+ constructor(config: IConfiguration, log: ILogger, storage: AbstractStorageService);
11
+ getMiddleware: () => (req: Request, res: Response, next: NextFunction) => void;
12
+ getWhitelistRegexp: () => {
13
+ routesRegexp: RegExp;
14
+ headersRegexp: RegExp;
15
+ };
16
+ }
@@ -1,94 +1,76 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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); }
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.uploadDataToS3 = exports.saveRawDataMiddleware = exports.headersRegexp = exports.routesRegexp = void 0;
7
- const errors_1 = require("@golemio/errors");
8
- const aws_sdk_1 = require("aws-sdk");
9
- const moment_timezone_1 = __importDefault(require("moment-timezone"));
15
+ exports.SaveRawDataMiddleware = void 0;
16
+ const tsyringe_1 = require("tsyringe");
10
17
  const path_to_regexp_1 = require("path-to-regexp");
11
- const config_1 = require("../config");
12
- const helpers_1 = require("./");
13
- // load all whitelisted datasets
14
- let regexpRoutesString = "";
15
- let regexpHeadersString = "";
16
- for (const dataset of config_1.config.saveRawDataWhitelist) {
17
- if (regexpRoutesString.length !== 0) {
18
- regexpRoutesString += "|";
19
- }
20
- const routeRegexp = `(${(0, path_to_regexp_1.pathToRegexp)(dataset.route).source})`;
21
- regexpRoutesString += routeRegexp;
22
- if (dataset.withHeaders) {
23
- if (regexpHeadersString.length !== 0) {
24
- regexpHeadersString += "|";
25
- }
26
- regexpHeadersString += routeRegexp;
27
- }
28
- }
29
- // regexp for matching all whitelisted datasets
30
- exports.routesRegexp = regexpRoutesString !== "" ? RegExp(regexpRoutesString) : RegExp(/.^/);
31
- exports.headersRegexp = regexpHeadersString !== "" ? RegExp(regexpHeadersString) : RegExp(/.^/);
32
- const s3 = new aws_sdk_1.S3({
33
- accessKeyId: config_1.config.s3.access_key_id,
34
- endpoint: config_1.config.s3.endpoint,
35
- s3ForcePathStyle: true,
36
- secretAccessKey: config_1.config.s3.secret_access_key,
37
- signatureVersion: "v4",
38
- });
39
- /**
40
- * Middleware function for saving raw data to file
41
- */
42
- const saveRawDataMiddleware = (req, res, next) => {
43
- const requestUrlPath = req.path;
44
- // save file only if S3 is enabled and the method is POST and the url match one of whitelisted route
45
- if (config_1.config.s3.enabled && req.method === "POST" && exports.routesRegexp.exec(requestUrlPath)) {
46
- // file name (path) in format {url}/{YYYY-MM-DD}/{HH_mm_ss.s}, e.g. mos-be/accounts/2020-04-17/12_59_42.456
47
- const now = (0, moment_timezone_1.default)().tz("Europe/Prague");
48
- const name = `${requestUrlPath.slice(1)}/${now.format("YYYY-MM-DD")}/${now.format("HH_mm_ss.SSS")}`;
49
- // file extension by content-type
50
- const contentType = (0, helpers_1.getContentType)(req);
51
- const ext = helpers_1.contentTypeToExtension[contentType];
52
- // content-type checking
53
- if (!ext) {
54
- errors_1.ErrorHandler.handle(new errors_1.CustomError(`Saving raw data failed. (${requestUrlPath})`, true, "SaveRawDataMiddleware", 406, new Error(`Extension for content-type ${contentType} was not found.`)), helpers_1.log);
55
- return next();
56
- }
57
- // save file with body of the matched route
58
- const dataPutRequest = {
59
- Body: req,
60
- Bucket: config_1.config.s3.bucket_name,
61
- Key: `${name}.${ext}`,
62
- };
63
- const options = {
64
- partSize: config_1.config.s3.upload_part_size * 1024 * 1024,
65
- queueSize: config_1.config.s3.upload_queue_size,
18
+ const errors_1 = require("@golemio/errors");
19
+ const storage_1 = require("../../helpers/data-access/storage");
20
+ const CheckContentTypeMiddleware_1 = require("./CheckContentTypeMiddleware");
21
+ const ContentTypeHelper_1 = require("./ContentTypeHelper");
22
+ const ioc_1 = require("../ioc");
23
+ let SaveRawDataMiddleware = class SaveRawDataMiddleware {
24
+ constructor(config, log, storage) {
25
+ this.log = log;
26
+ this.storage = storage;
27
+ this.getMiddleware = () => {
28
+ const whitelistRegexp = this.getWhitelistRegexp();
29
+ return (req, res, next) => {
30
+ const requestUrlPath = req.path;
31
+ if (this.storageEnabled && req.method === "POST" && whitelistRegexp.routesRegexp.exec(requestUrlPath)) {
32
+ // file extension by content-type
33
+ const contentType = (0, CheckContentTypeMiddleware_1.getContentType)(req);
34
+ const ext = ContentTypeHelper_1.contentTypeToExtension[contentType];
35
+ // content-type checking
36
+ if (!ext) {
37
+ errors_1.ErrorHandler.handle(new errors_1.CustomError(`Saving raw data failed. (${requestUrlPath})`, true, "SaveRawDataMiddleware", 406, new Error(`Extension for content-type ${contentType} was not found.`)), this.log);
38
+ return next();
39
+ }
40
+ this.storage.uploadFile(req.body, `${requestUrlPath.slice(1)}`, ext);
41
+ // save file with headers of the matched route
42
+ if (whitelistRegexp.headersRegexp.exec(requestUrlPath)) {
43
+ this.storage.uploadFile(JSON.stringify(req.headers), `${requestUrlPath.slice(1)}`, `json`, "_headers");
44
+ }
45
+ }
46
+ next();
47
+ };
66
48
  };
67
- (0, exports.uploadDataToS3)(dataPutRequest, options, requestUrlPath);
68
- // save file with headers of the matched route
69
- if (exports.headersRegexp.exec(requestUrlPath)) {
70
- const headersPutRequest = {
71
- Body: JSON.stringify(req.headers),
72
- Bucket: config_1.config.s3.bucket_name,
73
- Key: `${name}_headers.json`,
49
+ this.getWhitelistRegexp = () => {
50
+ const regexpRoutes = [];
51
+ const regexpHeaders = [];
52
+ for (const dataset of this.whitelist) {
53
+ const routeRegexp = `(${(0, path_to_regexp_1.pathToRegexp)(dataset.route).source})`;
54
+ regexpRoutes.push(routeRegexp);
55
+ if (dataset.withHeaders) {
56
+ regexpHeaders.push(routeRegexp);
57
+ }
58
+ }
59
+ return {
60
+ routesRegexp: regexpRoutes.length ? RegExp(regexpRoutes.join("|")) : RegExp(/.^/),
61
+ headersRegexp: regexpHeaders.length ? RegExp(regexpHeaders.join("|")) : RegExp(/.^/),
74
62
  };
75
- (0, exports.uploadDataToS3)(headersPutRequest, options, requestUrlPath);
76
- }
63
+ };
64
+ this.storageEnabled = config.storage.enabled;
65
+ this.whitelist = config.saveRawDataWhitelist;
77
66
  }
78
- next();
79
- };
80
- exports.saveRawDataMiddleware = saveRawDataMiddleware;
81
- /**
82
- * Helper function for saving data to S3
83
- */
84
- const uploadDataToS3 = (data, options, requestUrlPath) => {
85
- s3.upload(data, options, (err, _data) => {
86
- if (err) {
87
- errors_1.ErrorHandler.handle(new errors_1.CustomError(`Uploading data failed to S3 failed. (${requestUrlPath})`, true, "SaveRawDataMiddleware", err.statusCode, err), helpers_1.log);
88
- }
89
- }).on("httpUploadProgress", (httpUploadProgress) => {
90
- helpers_1.log.debug(`S3 file upload progress: ${httpUploadProgress.loaded} / ${httpUploadProgress.total}`);
91
- });
92
67
  };
93
- exports.uploadDataToS3 = uploadDataToS3;
68
+ SaveRawDataMiddleware = __decorate([
69
+ (0, tsyringe_1.injectable)(),
70
+ __param(0, (0, tsyringe_1.inject)(ioc_1.ContainerToken.Config)),
71
+ __param(1, (0, tsyringe_1.inject)(ioc_1.ContainerToken.Logger)),
72
+ __param(2, (0, tsyringe_1.inject)(ioc_1.ContainerToken.StorageService)),
73
+ __metadata("design:paramtypes", [Object, Object, storage_1.AbstractStorageService])
74
+ ], SaveRawDataMiddleware);
75
+ exports.SaveRawDataMiddleware = SaveRawDataMiddleware;
94
76
  //# sourceMappingURL=SaveRawDataMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SaveRawDataMiddleware.js","sourceRoot":"","sources":["../../../src/input-gateway/helpers/SaveRawDataMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SaveRawDataMiddleware.js","sourceRoot":"","sources":["../../../src/input-gateway/helpers/SaveRawDataMiddleware.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,9 @@ declare const ContainerToken: {
4
4
  LoggerEvents: symbol;
5
5
  RequestLogger: symbol;
6
6
  AmqpConnector: symbol;
7
+ FeatureFlagService: symbol;
8
+ FeatureFlagServiceWrapper: symbol;
9
+ StorageService: symbol;
10
+ StorageServiceProvider: symbol;
7
11
  };
8
12
  export { ContainerToken };
@@ -7,6 +7,10 @@ const ContainerToken = {
7
7
  LoggerEvents: Symbol(),
8
8
  RequestLogger: Symbol(),
9
9
  AmqpConnector: Symbol(),
10
+ FeatureFlagService: Symbol(),
11
+ FeatureFlagServiceWrapper: Symbol(),
12
+ StorageService: Symbol(),
13
+ StorageServiceProvider: Symbol(),
10
14
  };
11
15
  exports.ContainerToken = ContainerToken;
12
16
  //# sourceMappingURL=ContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,MAAM,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE;IAChB,YAAY,EAAE,MAAM,EAAE;IACtB,aAAa,EAAE,MAAM,EAAE;IACvB,aAAa,EAAE,MAAM,EAAE;CAC1B,CAAC;AAEO,wCAAc"}
1
+ {"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,MAAM,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE;IAChB,YAAY,EAAE,MAAM,EAAE;IACtB,aAAa,EAAE,MAAM,EAAE;IACvB,aAAa,EAAE,MAAM,EAAE;IACvB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,yBAAyB,EAAE,MAAM,EAAE;IACnC,cAAc,EAAE,MAAM,EAAE;IACxB,sBAAsB,EAAE,MAAM,EAAE;CACnC,CAAC;AAEO,wCAAc"}
@@ -8,9 +8,11 @@ const _helpers_1 = require("../../helpers");
8
8
  const Di_1 = require("../../helpers/ioc/Di");
9
9
  const InputGatewayConfiguration_1 = require("../config/InputGatewayConfiguration");
10
10
  const AMQPConnector_1 = require("../connectors/AMQPConnector");
11
+ const FeatureFlagServiceWrapper_1 = require("../data-access/FeatureFlagServiceWrapper");
11
12
  const LoggerEvents_1 = __importDefault(require("../helpers/LoggerEvents"));
12
13
  const tsyringe_1 = require("tsyringe");
13
14
  const ContainerToken_1 = require("./ContainerToken");
15
+ const StorageServiceProvider_1 = require("../data-access/StorageServiceProvider");
14
16
  //#region Initialization
15
17
  const singletonOptions = { lifecycle: tsyringe_1.Lifecycle.Singleton };
16
18
  const InputGatewayContainer = Di_1.GlobalContainer.createChildContainer();
@@ -28,5 +30,13 @@ InputGatewayContainer.register(ContainerToken_1.ContainerToken.LoggerEvents, { u
28
30
  InputGatewayContainer.registerInstance(ContainerToken_1.ContainerToken.RequestLogger, (0, _helpers_1.createRequestLogger)(config.node_env, InputGatewayContainer.resolve(ContainerToken_1.ContainerToken.Logger)));
29
31
  //#endregion
30
32
  //#region Data Access
31
- InputGatewayContainer.register(ContainerToken_1.ContainerToken.AmqpConnector, { useClass: AMQPConnector_1.AMQPConnector }, singletonOptions);
33
+ InputGatewayContainer.register(ContainerToken_1.ContainerToken.AmqpConnector, { useClass: AMQPConnector_1.AMQPConnector }, singletonOptions)
34
+ .register(ContainerToken_1.ContainerToken.FeatureFlagServiceWrapper, FeatureFlagServiceWrapper_1.FeatureFlagServiceWrapper, singletonOptions)
35
+ .register(ContainerToken_1.ContainerToken.FeatureFlagService, {
36
+ useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => c.resolve(ContainerToken_1.ContainerToken.FeatureFlagServiceWrapper).service),
37
+ })
38
+ .register(ContainerToken_1.ContainerToken.StorageServiceProvider, StorageServiceProvider_1.StorageServiceProvider, singletonOptions)
39
+ .register(ContainerToken_1.ContainerToken.StorageService, {
40
+ useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => c.resolve(ContainerToken_1.ContainerToken.StorageServiceProvider).service),
41
+ });
32
42
  //# sourceMappingURL=Di.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/Di.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsE;AAEtE,6CAAkD;AAElD,mFAAiF;AACjF,+DAA6D;AAC7D,2EAAoD;AACpD,uCAAqC;AACrC,qDAAkD;AAElD,wBAAwB;AACxB,MAAM,gBAAgB,GAAG,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAe,CAAC,oBAAoB,EAAE,CAAC;AA0B5D,sDAAqB;AAzB9B,YAAY;AAEZ,iBAAiB;AACjB,qBAAqB,CAAC,QAAQ,CAAiB,+BAAc,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,qDAAyB,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEjI,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAiB,+BAAc,CAAC,MAAM,CAAC,CAAC;AACpF,qBAAqB,CAAC,gBAAgB,CAClC,+BAAc,CAAC,MAAM,EACrB,IAAA,uBAAY,EAAC;IACT,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC,QAAQ;IACxB,QAAQ,EAAE,MAAM,CAAC,SAAS;CAC7B,CAAC,CACL,CAAC;AACF,qBAAqB,CAAC,QAAQ,CAAC,+BAAc,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,sBAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC1G,qBAAqB,CAAC,gBAAgB,CAClC,+BAAc,CAAC,aAAa,EAC5B,IAAA,8BAAmB,EAAC,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,+BAAc,CAAC,MAAM,CAAC,CAAC,CAC7F,CAAC;AACF,YAAY;AAEZ,qBAAqB;AACrB,qBAAqB,CAAC,QAAQ,CAAkB,+BAAc,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,6BAAa,EAAE,EAAE,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/Di.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsE;AAEtE,6CAAkD;AAElD,mFAAiF;AACjF,+DAA6D;AAC7D,wFAAsF;AACtF,2EAAoD;AACpD,uCAA6D;AAC7D,qDAAkD;AAClD,kFAAgF;AAEhF,wBAAwB;AACxB,MAAM,gBAAgB,GAAG,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAe,CAAC,oBAAoB,EAAE,CAAC;AAsC5D,sDAAqB;AArC9B,YAAY;AAEZ,iBAAiB;AACjB,qBAAqB,CAAC,QAAQ,CAAiB,+BAAc,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,qDAAyB,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEjI,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAiB,+BAAc,CAAC,MAAM,CAAC,CAAC;AACpF,qBAAqB,CAAC,gBAAgB,CAClC,+BAAc,CAAC,MAAM,EACrB,IAAA,uBAAY,EAAC;IACT,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC,QAAQ;IACxB,QAAQ,EAAE,MAAM,CAAC,SAAS;CAC7B,CAAC,CACL,CAAC;AACF,qBAAqB,CAAC,QAAQ,CAAC,+BAAc,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,sBAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC1G,qBAAqB,CAAC,gBAAgB,CAClC,+BAAc,CAAC,aAAa,EAC5B,IAAA,8BAAmB,EAAC,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,+BAAc,CAAC,MAAM,CAAC,CAAC,CAC7F,CAAC;AACF,YAAY;AAEZ,qBAAqB;AACrB,qBAAqB,CAAC,QAAQ,CAAkB,+BAAc,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,6BAAa,EAAE,EAAE,gBAAgB,CAAC;KACvH,QAAQ,CAAC,+BAAc,CAAC,yBAAyB,EAAE,qDAAyB,EAAE,gBAAgB,CAAC;KAC/F,QAAQ,CAAC,+BAAc,CAAC,kBAAkB,EAAE;IACzC,UAAU,EAAE,IAAA,iCAAsB,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAA4B,+BAAc,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAChG;CACJ,CAAC;KACD,QAAQ,CAAC,+BAAc,CAAC,sBAAsB,EAAE,+CAAsB,EAAE,gBAAgB,CAAC;KACzF,QAAQ,CAAC,+BAAc,CAAC,cAAc,EAAE;IACrC,UAAU,EAAE,IAAA,iCAAsB,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAyB,+BAAc,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAC1F;CACJ,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { IFeatureFlagsConfig } from "../../helpers/data-access/feature-flags";
1
2
  import { JaegerProcessorType } from "../../monitoring";
2
3
  import { IConfiguration } from "./abstract";
3
4
  export declare class IntegrationEngineConfiguration implements IConfiguration {
@@ -67,6 +68,7 @@ export declare class IntegrationEngineConfiguration implements IConfiguration {
67
68
  shutdownTimeout: number;
68
69
  handlerTimeout: number;
69
70
  };
71
+ featureFlags: IFeatureFlagsConfig;
70
72
  vehiclePositions: {
71
73
  stepBetweenPoints: number;
72
74
  tcpBusTjrNegativeOffset: number;
@@ -15,6 +15,7 @@ const _monitoring_1 = require("../../monitoring");
15
15
  const tsyringe_1 = require("tsyringe");
16
16
  let IntegrationEngineConfiguration = class IntegrationEngineConfiguration {
17
17
  constructor() {
18
+ var _a, _b, _c, _d;
18
19
  this.DATA_BATCH_SIZE = process.env.DATA_BATCH_SIZE || 1000;
19
20
  this.HOPPYGO_BASE_URL = process.env.HOPPYGO_BASE_URL;
20
21
  this.LOG_LEVEL = process.env.LOG_LEVEL;
@@ -82,6 +83,26 @@ let IntegrationEngineConfiguration = class IntegrationEngineConfiguration {
82
83
  shutdownTimeout: process.env.LIGHTSHIP_SHUTDOWN_TIMEOUT ? parseInt(process.env.LIGHTSHIP_SHUTDOWN_TIMEOUT, 10) : 60000,
83
84
  handlerTimeout: process.env.LIGHTSHIP_HANDLER_TIMEOUT ? parseInt(process.env.LIGHTSHIP_HANDLER_TIMEOUT, 10) : 5000,
84
85
  };
86
+ this.featureFlags = {
87
+ enabled: process.env.FEATURE_FLAGS_ENABLED === "true",
88
+ provider: {
89
+ launchDarkly: {
90
+ appId: (_a = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_APP_ID) !== null && _a !== void 0 ? _a : "integration-engine",
91
+ sdkKey: (_b = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_SDK_KEY) !== null && _b !== void 0 ? _b : "sdk-test",
92
+ useOfflineMode: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_USE_OFFLINE_MODE === "true",
93
+ fileDataSource: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_FILE_DATA_SOURCE,
94
+ useDaemonMode: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_USE_DAEMON_MODE === "true",
95
+ options: {
96
+ baseUri: (_c = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_BASE_URI) !== null && _c !== void 0 ? _c : "http://localhost:8030",
97
+ redisConn: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_CONN,
98
+ redisCacheTtlInSeconds: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_CACHE_TTL_IN_SECONDS
99
+ ? parseInt(process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_CACHE_TTL_IN_SECONDS)
100
+ : 60,
101
+ redisKeyPrefix: (_d = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_KEY_PREFIX) !== null && _d !== void 0 ? _d : "ld-ie",
102
+ },
103
+ },
104
+ },
105
+ };
85
106
  this.vehiclePositions = {
86
107
  stepBetweenPoints: Number(process.env.VEHICLE_POSITIONS_STEP_BETWEEN_POINTS) || 0.1,
87
108
  // hours to be subtracted from the TJR property (TCP busses only) when transitioning from CET to CEST, default 1 hour
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationEngineConfiguration.js","sourceRoot":"","sources":["../../../src/integration-engine/config/IntegrationEngineConfiguration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IntegrationEngineConfiguration.js","sourceRoot":"","sources":["../../../src/integration-engine/config/IntegrationEngineConfiguration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { IFeatureFlagService } from "../../helpers/data-access/feature-flags";
2
+ import { AbstractFeatureFlagServiceWrapper } from "../../helpers/data-access/feature-flags/helpers";
3
+ import { ILogger } from "../../helpers/logger";
4
+ import { IntegrationEngineConfiguration } from "../config/IntegrationEngineConfiguration";
5
+ import { Disposable } from "tsyringe";
6
+ export declare class FeatureFlagServiceWrapper extends AbstractFeatureFlagServiceWrapper implements Disposable {
7
+ protected _service: IFeatureFlagService;
8
+ constructor(config: IntegrationEngineConfiguration, log: ILogger);
9
+ }
@@ -0,0 +1,39 @@
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.FeatureFlagServiceWrapper = void 0;
16
+ const feature_flags_1 = require("../../helpers/data-access/feature-flags");
17
+ const helpers_1 = require("../../helpers/data-access/feature-flags/helpers");
18
+ const IntegrationEngineConfiguration_1 = require("../config/IntegrationEngineConfiguration");
19
+ const ContainerToken_1 = require("../ioc/ContainerToken");
20
+ const errors_1 = require("@golemio/errors");
21
+ const tsyringe_1 = require("tsyringe");
22
+ let FeatureFlagServiceWrapper = class FeatureFlagServiceWrapper extends helpers_1.AbstractFeatureFlagServiceWrapper {
23
+ constructor(config, log) {
24
+ super();
25
+ const service = new feature_flags_1.FeatureFlagServiceFactory(config.featureFlags, log).getService(feature_flags_1.FeatureFlagsProvider.LaunchDarkly);
26
+ if (!service) {
27
+ throw new errors_1.CustomError(`FeatureFlagServiceFactory returned undefined for provider ${feature_flags_1.FeatureFlagsProvider.LaunchDarkly}`, false, this.constructor.name);
28
+ }
29
+ this._service = service;
30
+ }
31
+ };
32
+ FeatureFlagServiceWrapper = __decorate([
33
+ (0, tsyringe_1.injectable)(),
34
+ __param(0, (0, tsyringe_1.inject)(ContainerToken_1.ContainerToken.Config)),
35
+ __param(1, (0, tsyringe_1.inject)(ContainerToken_1.ContainerToken.Logger)),
36
+ __metadata("design:paramtypes", [IntegrationEngineConfiguration_1.IntegrationEngineConfiguration, Object])
37
+ ], FeatureFlagServiceWrapper);
38
+ exports.FeatureFlagServiceWrapper = FeatureFlagServiceWrapper;
39
+ //# sourceMappingURL=FeatureFlagServiceWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagServiceWrapper.js","sourceRoot":"","sources":["../../../src/integration-engine/data-access/FeatureFlagServiceWrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2EAA0H;AAC1H,6EAA+F;AAE/F,6FAA2F;AAC3F,0DAAwD;AACxD,4CAA8C;AAC9C,uCAA0D;AAG1D,IAAa,yBAAyB,GAAtC,MAAa,yBAA0B,SAAQ,2CAAiC;IAG5E,YACmC,MAAsC,EACtC,GAAY;QAE3C,KAAK,EAAE,CAAC;QAER,MAAM,OAAO,GAAG,IAAI,yCAAyB,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,oCAAoB,CAAC,YAAY,CAAC,CAAC;QACtH,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,oBAAW,CACjB,6DAA6D,oCAAoB,CAAC,YAAY,EAAE,EAChG,KAAK,EACL,IAAI,CAAC,WAAW,CAAC,IAAI,CACxB,CAAC;SACL;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;CACJ,CAAA;AApBY,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,+BAAc,CAAC,MAAM,CAAC,CAAA;IAC7B,WAAA,IAAA,iBAAM,EAAC,+BAAc,CAAC,MAAM,CAAC,CAAA;qCADS,+DAA8B;GAJhE,yBAAyB,CAoBrC;AApBY,8DAAyB"}
@@ -1,6 +1,11 @@
1
+ import { IFeatureFlagService } from "../../helpers/data-access/feature-flags";
1
2
  import IStorageService from "./interfaces/IStorageService";
2
3
  /**
3
4
  * @deprecated For backwards compatibility. Use ioc container instead.
4
5
  */
5
6
  declare const storageService: IStorageService;
6
- export { storageService };
7
+ /**
8
+ * @deprecated For backwards compatibility. Use ioc container instead.
9
+ */
10
+ declare const featureFlagService: IFeatureFlagService;
11
+ export { storageService, featureFlagService };
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.storageService = void 0;
3
+ exports.featureFlagService = exports.storageService = void 0;
4
4
  const ioc_1 = require("../ioc");
5
5
  /**
6
6
  * @deprecated For backwards compatibility. Use ioc container instead.
7
7
  */
8
8
  const storageService = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.StorageService);
9
9
  exports.storageService = storageService;
10
+ /**
11
+ * @deprecated For backwards compatibility. Use ioc container instead.
12
+ */
13
+ const featureFlagService = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.FeatureFlagService);
14
+ exports.featureFlagService = featureFlagService;
10
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/data-access/index.ts"],"names":[],"mappings":";;;AAAA,gCAAqE;AAGrE;;GAEG;AACH,MAAM,cAAc,GAAG,gCAA0B,CAAC,OAAO,CAAkB,oBAAc,CAAC,cAAc,CAAC,CAAC;AAEjG,wCAAc"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/data-access/index.ts"],"names":[],"mappings":";;;AACA,gCAAqE;AAGrE;;GAEG;AACH,MAAM,cAAc,GAAG,gCAA0B,CAAC,OAAO,CAAkB,oBAAc,CAAC,cAAc,CAAC,CAAC;AAOjG,wCAAc;AALvB;;GAEG;AACH,MAAM,kBAAkB,GAAG,gCAA0B,CAAC,OAAO,CAAsB,oBAAc,CAAC,kBAAkB,CAAC,CAAC;AAE7F,gDAAkB"}
@@ -10,5 +10,7 @@ declare const ContainerToken: {
10
10
  StorageService: symbol;
11
11
  GeocodeApi: symbol;
12
12
  RawDataStorage: symbol;
13
+ FeatureFlagService: symbol;
14
+ FeatureFlagServiceWrapper: symbol;
13
15
  };
14
16
  export { ContainerToken };
@@ -13,6 +13,8 @@ const ContainerToken = {
13
13
  StorageService: Symbol(),
14
14
  GeocodeApi: Symbol(),
15
15
  RawDataStorage: Symbol(),
16
+ FeatureFlagService: Symbol(),
17
+ FeatureFlagServiceWrapper: Symbol(),
16
18
  };
17
19
  exports.ContainerToken = ContainerToken;
18
20
  //# sourceMappingURL=ContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,MAAM,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE;IAChB,YAAY,EAAE,MAAM,EAAE;IACtB,aAAa,EAAE,MAAM,EAAE;IACvB,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,cAAc,EAAE,MAAM,EAAE;IACxB,cAAc,EAAE,MAAM,EAAE;IACxB,UAAU,EAAE,MAAM,EAAE;IACpB,cAAc,EAAE,MAAM,EAAE;CAC3B,CAAC;AAEO,wCAAc"}
1
+ {"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,MAAM,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE;IAChB,YAAY,EAAE,MAAM,EAAE;IACtB,aAAa,EAAE,MAAM,EAAE;IACvB,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,cAAc,EAAE,MAAM,EAAE;IACxB,cAAc,EAAE,MAAM,EAAE;IACxB,UAAU,EAAE,MAAM,EAAE;IACpB,cAAc,EAAE,MAAM,EAAE;IACxB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,yBAAyB,EAAE,MAAM,EAAE;CACtC,CAAC;AAEO,wCAAc"}
@@ -11,6 +11,7 @@ const AMQPConnector_1 = require("../connectors/AMQPConnector");
11
11
  const MongoConnector_1 = require("../connectors/MongoConnector");
12
12
  const PostgresConnector_1 = require("../connectors/PostgresConnector");
13
13
  const RedisConnector_1 = require("../connectors/RedisConnector");
14
+ const FeatureFlagServiceWrapper_1 = require("../data-access/FeatureFlagServiceWrapper");
14
15
  const RawDataStorage_1 = __importDefault(require("../data-access/RawDataStorage"));
15
16
  const StorageService_1 = require("../data-access/StorageService");
16
17
  const GeocodeApi_1 = require("../helpers/GeocodeApi");
@@ -42,5 +43,9 @@ IntegrationEngineContainer.register(ContainerToken_1.ContainerToken.AmqpConnecto
42
43
  .register(ContainerToken_1.ContainerToken.RedisConnector, { useClass: RedisConnector_1.RedisConnector }, singletonOptions)
43
44
  .register(ContainerToken_1.ContainerToken.StorageService, { useClass: StorageService_1.StorageService }, singletonOptions)
44
45
  .register(ContainerToken_1.ContainerToken.GeocodeApi, { useClass: GeocodeApi_1.GeocodeApi }, singletonOptions)
45
- .registerSingleton(ContainerToken_1.ContainerToken.RawDataStorage, RawDataStorage_1.default);
46
+ .registerSingleton(ContainerToken_1.ContainerToken.RawDataStorage, RawDataStorage_1.default)
47
+ .register(ContainerToken_1.ContainerToken.FeatureFlagServiceWrapper, FeatureFlagServiceWrapper_1.FeatureFlagServiceWrapper, singletonOptions)
48
+ .register(ContainerToken_1.ContainerToken.FeatureFlagService, {
49
+ useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => c.resolve(ContainerToken_1.ContainerToken.FeatureFlagServiceWrapper).service),
50
+ });
46
51
  //# sourceMappingURL=Di.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsE;AAEtE,6CAAkD;AAElD,6FAA2F;AAC3F,+DAA6D;AAI7D,iEAA+D;AAC/D,uEAAqE;AACrE,iEAA+D;AAE/D,mFAA4D;AAC5D,kEAAgE;AAChE,sDAAoD;AACpD,2EAAoD;AACpD,uCAA6D;AAC7D,qDAAkD;AAElD,wBAAwB;AACxB,MAAM,gBAAgB,GAAG,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC;AAC5D,MAAM,0BAA0B,GAAG,oBAAe,CAAC,oBAAoB,EAAE,CAAC;AAqCjE,gEAA0B;AApCnC,YAAY;AAEZ,iBAAiB;AACjB,0BAA0B,CAAC,QAAQ,CAC/B,+BAAc,CAAC,MAAM,EACrB,EAAE,QAAQ,EAAE,+DAA8B,EAAE,EAC5C,gBAAgB,CACnB,CAAC;AAEF,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,CAAiB,+BAAc,CAAC,MAAM,CAAC,CAAC;AACzF,0BAA0B,CAAC,QAAQ,CAAU,+BAAc,CAAC,MAAM,EAAE;IAChE,UAAU,EAAE,IAAA,iCAAsB,EAAC,GAAG,EAAE,CACpC,IAAA,uBAAY,EAAC;QACT,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,MAAM,CAAC,QAAQ;QACxB,QAAQ,EAAE,MAAM,CAAC,SAAS;KAC7B,CAAC,CACL;CACJ,CAAC;KACG,QAAQ,CAAC,+BAAc,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,sBAAY,EAAE,EAAE,gBAAgB,CAAC;KACnF,gBAAgB,CACb,+BAAc,CAAC,aAAa,EAC5B,IAAA,8BAAmB,EAAC,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC,OAAO,CAAC,+BAAc,CAAC,MAAM,CAAC,CAAC,CAClG,CAAC;AACN,YAAY;AAEZ,qBAAqB;AACrB,0BAA0B,CAAC,QAAQ,CAAkB,+BAAc,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,6BAAa,EAAE,EAAE,gBAAgB,CAAC;KAC5H,QAAQ,CAAkB,+BAAc,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,+BAAc,EAAE,EAAE,gBAAgB,CAAC;KACxG,QAAQ,CAAqB,+BAAc,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,qCAAiB,EAAE,EAAE,gBAAgB,CAAC;KACjH,QAAQ,CAAkB,+BAAc,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,+BAAc,EAAE,EAAE,gBAAgB,CAAC;KACxG,QAAQ,CAAkB,+BAAc,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,+BAAc,EAAE,EAAE,gBAAgB,CAAC;KACxG,QAAQ,CAAa,+BAAc,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,uBAAU,EAAE,EAAE,gBAAgB,CAAC;KAC3F,iBAAiB,CAAC,+BAAc,CAAC,cAAc,EAAE,wBAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsE;AAEtE,6CAAkD;AAElD,6FAA2F;AAC3F,+DAA6D;AAC7D,iEAA+D;AAC/D,uEAAqE;AACrE,iEAA+D;AAI/D,wFAAsF;AACtF,mFAA4D;AAC5D,kEAAgE;AAEhE,sDAAoD;AACpD,2EAAoD;AACpD,uCAA6D;AAC7D,qDAAkD;AAElD,wBAAwB;AACxB,MAAM,gBAAgB,GAAG,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC;AAC5D,MAAM,0BAA0B,GAAG,oBAAe,CAAC,oBAAoB,EAAE,CAAC;AA2CjE,gEAA0B;AA1CnC,YAAY;AAEZ,iBAAiB;AACjB,0BAA0B,CAAC,QAAQ,CAC/B,+BAAc,CAAC,MAAM,EACrB,EAAE,QAAQ,EAAE,+DAA8B,EAAE,EAC5C,gBAAgB,CACnB,CAAC;AAEF,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,CAAiB,+BAAc,CAAC,MAAM,CAAC,CAAC;AACzF,0BAA0B,CAAC,QAAQ,CAAU,+BAAc,CAAC,MAAM,EAAE;IAChE,UAAU,EAAE,IAAA,iCAAsB,EAAC,GAAG,EAAE,CACpC,IAAA,uBAAY,EAAC;QACT,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,MAAM,CAAC,QAAQ;QACxB,QAAQ,EAAE,MAAM,CAAC,SAAS;KAC7B,CAAC,CACL;CACJ,CAAC;KACG,QAAQ,CAAC,+BAAc,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,sBAAY,EAAE,EAAE,gBAAgB,CAAC;KACnF,gBAAgB,CACb,+BAAc,CAAC,aAAa,EAC5B,IAAA,8BAAmB,EAAC,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC,OAAO,CAAC,+BAAc,CAAC,MAAM,CAAC,CAAC,CAClG,CAAC;AACN,YAAY;AAEZ,qBAAqB;AACrB,0BAA0B,CAAC,QAAQ,CAAkB,+BAAc,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,6BAAa,EAAE,EAAE,gBAAgB,CAAC;KAC5H,QAAQ,CAAkB,+BAAc,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,+BAAc,EAAE,EAAE,gBAAgB,CAAC;KACxG,QAAQ,CAAqB,+BAAc,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,qCAAiB,EAAE,EAAE,gBAAgB,CAAC;KACjH,QAAQ,CAAkB,+BAAc,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,+BAAc,EAAE,EAAE,gBAAgB,CAAC;KACxG,QAAQ,CAAkB,+BAAc,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,+BAAc,EAAE,EAAE,gBAAgB,CAAC;KACxG,QAAQ,CAAa,+BAAc,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,uBAAU,EAAE,EAAE,gBAAgB,CAAC;KAC3F,iBAAiB,CAAC,+BAAc,CAAC,cAAc,EAAE,wBAAc,CAAC;KAChE,QAAQ,CAAC,+BAAc,CAAC,yBAAyB,EAAE,qDAAyB,EAAE,gBAAgB,CAAC;KAC/F,QAAQ,CAAC,+BAAc,CAAC,kBAAkB,EAAE;IACzC,UAAU,EAAE,IAAA,iCAAsB,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAA4B,+BAAc,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAChG;CACJ,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { IFeatureFlagsConfig } from "../../helpers/data-access/feature-flags";
1
2
  import { JaegerProcessorType } from "../../monitoring";
2
3
  export declare class OutputGatewayConfiguration {
3
4
  app_version: string | undefined;
@@ -42,6 +43,7 @@ export declare class OutputGatewayConfiguration {
42
43
  shutdownTimeout: number;
43
44
  handlerTimeout: number;
44
45
  };
46
+ featureFlags: IFeatureFlagsConfig;
45
47
  vehiclePositions: {
46
48
  defaultTimezone: string;
47
49
  };