@golemio/core 1.4.0 → 1.4.1-dev.761696539

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 +5 -0
  48. package/dist/input-gateway/ioc/ContainerToken.js +5 -0
  49. package/dist/input-gateway/ioc/ContainerToken.js.map +1 -1
  50. package/dist/input-gateway/ioc/Di.js +15 -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,13 @@
1
+ import { ILogger } from "../../logger";
2
+ import { IFeatureFlagsConfig } from "./interfaces/IFeatureFlagsConfig";
3
+ import { AbstractFeatureFlagService } from "./providers/AbstractFeatureFlagService";
4
+ export declare enum FeatureFlagsProvider {
5
+ Noop = "Noop",
6
+ LaunchDarkly = "LaunchDarkly"
7
+ }
8
+ export declare class FeatureFlagServiceFactory {
9
+ private config;
10
+ private dictionary;
11
+ constructor(config: IFeatureFlagsConfig, log: ILogger);
12
+ getService(provider: FeatureFlagsProvider): AbstractFeatureFlagService | undefined;
13
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeatureFlagServiceFactory = exports.FeatureFlagsProvider = void 0;
4
+ const LaunchDarklyFeatureFlagService_1 = require("./providers/LaunchDarklyFeatureFlagService");
5
+ const NoopFeatureFlagService_1 = require("./providers/NoopFeatureFlagService");
6
+ var FeatureFlagsProvider;
7
+ (function (FeatureFlagsProvider) {
8
+ FeatureFlagsProvider["Noop"] = "Noop";
9
+ FeatureFlagsProvider["LaunchDarkly"] = "LaunchDarkly";
10
+ })(FeatureFlagsProvider = exports.FeatureFlagsProvider || (exports.FeatureFlagsProvider = {}));
11
+ class FeatureFlagServiceFactory {
12
+ constructor(config, log) {
13
+ this.config = config;
14
+ this.dictionary = new Map();
15
+ if (config.enabled) {
16
+ this.dictionary.set(FeatureFlagsProvider.LaunchDarkly, new LaunchDarklyFeatureFlagService_1.LaunchDarklyFeatureFlagService(config.provider.launchDarkly, log));
17
+ }
18
+ else {
19
+ log.silly("[FeatureFlagServiceFactory] Feature flags are disabled");
20
+ this.dictionary.set(FeatureFlagsProvider.Noop, new NoopFeatureFlagService_1.NoopFeatureFlagService(log));
21
+ }
22
+ }
23
+ getService(provider) {
24
+ if (this.config.enabled) {
25
+ return this.dictionary.get(provider);
26
+ }
27
+ else {
28
+ return this.dictionary.get(FeatureFlagsProvider.Noop);
29
+ }
30
+ }
31
+ }
32
+ exports.FeatureFlagServiceFactory = FeatureFlagServiceFactory;
33
+ //# sourceMappingURL=FeatureFlagServiceFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagServiceFactory.js","sourceRoot":"","sources":["../../../../src/helpers/data-access/feature-flags/FeatureFlagServiceFactory.ts"],"names":[],"mappings":";;;AAGA,+FAA4F;AAC5F,+EAA4E;AAE5E,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,qDAA6B,CAAA;AACjC,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAED,MAAa,yBAAyB;IAGlC,YAAoB,MAA2B,EAAE,GAAY;QAAzC,WAAM,GAAN,MAAM,CAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CACf,oBAAoB,CAAC,YAAY,EACjC,IAAI,+DAA8B,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAa,EAAE,GAAG,CAAC,CACzE,CAAC;SACL;aAAM;YACH,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,+CAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;SACnF;IACL,CAAC;IAEM,UAAU,CAAC,QAA8B;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;SACzD;IACL,CAAC;CACJ;AAxBD,8DAwBC"}
@@ -0,0 +1,10 @@
1
+ import { IFeatureFlagService } from "./..";
2
+ import { Disposable } from "tsyringe";
3
+ /**
4
+ * Abstract wrapper of the feature flag service for dependency injection
5
+ */
6
+ export declare abstract class AbstractFeatureFlagServiceWrapper implements Disposable {
7
+ protected abstract _service: IFeatureFlagService;
8
+ get service(): IFeatureFlagService;
9
+ dispose(): Promise<void>;
10
+ }
@@ -0,0 +1,27 @@
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.AbstractFeatureFlagServiceWrapper = void 0;
13
+ /**
14
+ * Abstract wrapper of the feature flag service for dependency injection
15
+ */
16
+ class AbstractFeatureFlagServiceWrapper {
17
+ get service() {
18
+ return this._service;
19
+ }
20
+ dispose() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ yield this._service.disconnect();
23
+ });
24
+ }
25
+ }
26
+ exports.AbstractFeatureFlagServiceWrapper = AbstractFeatureFlagServiceWrapper;
27
+ //# sourceMappingURL=AbstractFeatureFlagServiceWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractFeatureFlagServiceWrapper.js","sourceRoot":"","sources":["../../../../../src/helpers/data-access/feature-flags/helpers/AbstractFeatureFlagServiceWrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA;;GAEG;AACH,MAAsB,iCAAiC;IAGnD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEY,OAAO;;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;KAAA;CACJ;AAVD,8EAUC"}
@@ -0,0 +1 @@
1
+ export * from "./AbstractFeatureFlagServiceWrapper";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AbstractFeatureFlagServiceWrapper"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/helpers/data-access/feature-flags/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD"}
@@ -0,0 +1,4 @@
1
+ export * from "./providers/AbstractFeatureFlagService";
2
+ export * from "./interfaces/IFeatureFlagsConfig";
3
+ export * from "./interfaces/IFeatureFlagService";
4
+ export * from "./FeatureFlagServiceFactory";
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./providers/AbstractFeatureFlagService"), exports);
18
+ __exportStar(require("./interfaces/IFeatureFlagsConfig"), exports);
19
+ __exportStar(require("./interfaces/IFeatureFlagService"), exports);
20
+ __exportStar(require("./FeatureFlagServiceFactory"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/data-access/feature-flags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,mEAAiD;AACjD,mEAAiD;AACjD,8DAA4C"}
@@ -0,0 +1,5 @@
1
+ export interface IFeatureFlagService {
2
+ connect(): Promise<void>;
3
+ disconnect(): Promise<void>;
4
+ isFeatureEnabled(flagKey: string, defaultValue?: boolean): Promise<boolean>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IFeatureFlagService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFeatureFlagService.js","sourceRoot":"","sources":["../../../../../src/helpers/data-access/feature-flags/interfaces/IFeatureFlagService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { LaunchDarklyConfig } from "../providers/interfaces/LaunchDarklyInterfaces";
2
+ export interface IFeatureFlagsConfig {
3
+ enabled: boolean;
4
+ provider: {
5
+ launchDarkly?: LaunchDarklyConfig;
6
+ };
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IFeatureFlagsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFeatureFlagsConfig.js","sourceRoot":"","sources":["../../../../../src/helpers/data-access/feature-flags/interfaces/IFeatureFlagsConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { IFeatureFlagService } from "../interfaces/IFeatureFlagService";
2
+ export declare abstract class AbstractFeatureFlagService implements IFeatureFlagService {
3
+ abstract connect(): Promise<void>;
4
+ abstract disconnect(): Promise<void>;
5
+ abstract isFeatureEnabled(flagKey: string, defaultValue?: boolean): Promise<boolean>;
6
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractFeatureFlagService = void 0;
4
+ class AbstractFeatureFlagService {
5
+ }
6
+ exports.AbstractFeatureFlagService = AbstractFeatureFlagService;
7
+ //# sourceMappingURL=AbstractFeatureFlagService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractFeatureFlagService.js","sourceRoot":"","sources":["../../../../../src/helpers/data-access/feature-flags/providers/AbstractFeatureFlagService.ts"],"names":[],"mappings":";;;AAEA,MAAsB,0BAA0B;CAI/C;AAJD,gEAIC"}
@@ -0,0 +1,13 @@
1
+ import { ILogger } from "../../../logger";
2
+ import { IFeatureFlagService } from "../interfaces/IFeatureFlagService";
3
+ import { AbstractFeatureFlagService } from "./AbstractFeatureFlagService";
4
+ import { LaunchDarklyConfig } from "./interfaces/LaunchDarklyInterfaces";
5
+ export declare class LaunchDarklyFeatureFlagService extends AbstractFeatureFlagService implements IFeatureFlagService {
6
+ private readonly client;
7
+ constructor(config: LaunchDarklyConfig, log: ILogger);
8
+ connect(): Promise<void>;
9
+ disconnect(): Promise<void>;
10
+ isFeatureEnabled(flagKey: string, defaultValue?: boolean): Promise<boolean>;
11
+ private getProxyModeOptions;
12
+ private getDaemonModeOptions;
13
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LaunchDarklyFeatureFlagService = void 0;
16
+ const launchdarkly_node_server_sdk_1 = __importDefault(require("launchdarkly-node-server-sdk"));
17
+ const launchdarkly_node_server_sdk_redis_1 = require("launchdarkly-node-server-sdk-redis");
18
+ const integrations_1 = require("launchdarkly-node-server-sdk/integrations");
19
+ const path_1 = __importDefault(require("path"));
20
+ const AbstractFeatureFlagService_1 = require("./AbstractFeatureFlagService");
21
+ class LaunchDarklyFeatureFlagService extends AbstractFeatureFlagService_1.AbstractFeatureFlagService {
22
+ constructor(config, log) {
23
+ super();
24
+ let options = {
25
+ application: { id: config.appId },
26
+ offline: !!config.useOfflineMode,
27
+ logger: log,
28
+ };
29
+ if (config.useDaemonMode) {
30
+ options = Object.assign(Object.assign({}, options), this.getDaemonModeOptions(config));
31
+ }
32
+ else {
33
+ options = Object.assign(Object.assign({}, options), this.getProxyModeOptions(config));
34
+ }
35
+ if (config.fileDataSource) {
36
+ log.warn(`[${this.constructor.name}] Loading feature flags from file ${config.fileDataSource}`);
37
+ options.updateProcessor = (0, integrations_1.FileDataSource)({
38
+ paths: [path_1.default.resolve(process.cwd(), config.fileDataSource)],
39
+ });
40
+ }
41
+ this.client = launchdarkly_node_server_sdk_1.default.init(config.sdkKey, options);
42
+ }
43
+ connect() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ yield this.client.waitForInitialization();
46
+ });
47
+ }
48
+ disconnect() {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ return this.client.close();
51
+ });
52
+ }
53
+ isFeatureEnabled(flagKey, defaultValue = false) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ return !!(yield this.client.variation(flagKey, { kind: "multi" }, defaultValue));
56
+ });
57
+ }
58
+ getProxyModeOptions(config) {
59
+ return {
60
+ baseUri: config.options.baseUri,
61
+ };
62
+ }
63
+ getDaemonModeOptions(config) {
64
+ return {
65
+ // Enable daemon mode
66
+ useLdd: true,
67
+ featureStore: (0, launchdarkly_node_server_sdk_redis_1.RedisFeatureStore)({
68
+ redisOpts: { url: config.options.redisConn },
69
+ prefix: config.options.redisKeyPrefix,
70
+ cacheTTL: config.options.redisCacheTtlInSeconds,
71
+ }),
72
+ };
73
+ }
74
+ }
75
+ exports.LaunchDarklyFeatureFlagService = LaunchDarklyFeatureFlagService;
76
+ //# sourceMappingURL=LaunchDarklyFeatureFlagService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaunchDarklyFeatureFlagService.js","sourceRoot":"","sources":["../../../../../src/helpers/data-access/feature-flags/providers/LaunchDarklyFeatureFlagService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gGAAuE;AACvE,2FAAuE;AACvE,4EAA2E;AAC3E,gDAAwB;AAExB,6EAA0E;AAG1E,MAAa,8BAA+B,SAAQ,uDAA0B;IAG1E,YAAY,MAA0B,EAAE,GAAY;QAChD,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,GAAc;YACrB,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE;YACjC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;YAChC,MAAM,EAAE,GAAG;SACd,CAAC;QAEF,IAAI,MAAM,CAAC,aAAa,EAAE;YACtB,OAAO,mCACA,OAAO,GACP,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CACvC,CAAC;SACL;aAAM;YACH,OAAO,mCACA,OAAO,GACP,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CACtC,CAAC;SACL;QAED,IAAI,MAAM,CAAC,cAAc,EAAE;YACvB,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,qCAAqC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YAChG,OAAO,CAAC,eAAe,GAAG,IAAA,6BAAc,EAAC;gBACrC,KAAK,EAAE,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;aAC9D,CAAC,CAAC;SACN;QAED,IAAI,CAAC,MAAM,GAAG,sCAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEY,OAAO;;YAChB,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC9C,CAAC;KAAA;IAEY,UAAU;;YACnB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEY,gBAAgB,CAAC,OAAe,EAAE,YAAY,GAAG,KAAK;;YAC/D,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QACrF,CAAC;KAAA;IAEO,mBAAmB,CAAC,MAAwB;QAChD,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;SAClC,CAAC;IACN,CAAC;IAEO,oBAAoB,CAAC,MAAyB;QAClD,OAAO;YACH,qBAAqB;YACrB,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAA,sDAAiB,EAAC;gBAC5B,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC5C,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc;gBACrC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,sBAAsB;aAClD,CAAC;SACL,CAAC;IACN,CAAC;CACJ;AA/DD,wEA+DC"}
@@ -0,0 +1,10 @@
1
+ import { ILogger } from "../../../logger";
2
+ import { IFeatureFlagService } from "../interfaces/IFeatureFlagService";
3
+ import { AbstractFeatureFlagService } from "./AbstractFeatureFlagService";
4
+ export declare class NoopFeatureFlagService extends AbstractFeatureFlagService implements IFeatureFlagService {
5
+ private readonly log;
6
+ constructor(log: ILogger);
7
+ connect(): Promise<void>;
8
+ disconnect(): Promise<void>;
9
+ isFeatureEnabled(_flagKey: string, defaultValue?: boolean): Promise<boolean>;
10
+ }
@@ -0,0 +1,39 @@
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.NoopFeatureFlagService = void 0;
13
+ const AbstractFeatureFlagService_1 = require("./AbstractFeatureFlagService");
14
+ class NoopFeatureFlagService extends AbstractFeatureFlagService_1.AbstractFeatureFlagService {
15
+ constructor(log) {
16
+ super();
17
+ this.log = log;
18
+ }
19
+ connect() {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ this.log.silly(`[${this.constructor.name}] Feature flags are disabled`);
22
+ return Promise.resolve();
23
+ });
24
+ }
25
+ disconnect() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ this.log.silly(`[${this.constructor.name}] Feature flags are disabled`);
28
+ return Promise.resolve();
29
+ });
30
+ }
31
+ isFeatureEnabled(_flagKey, defaultValue = false) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ this.log.silly(`[${this.constructor.name}] Feature flags are disabled`);
34
+ return defaultValue;
35
+ });
36
+ }
37
+ }
38
+ exports.NoopFeatureFlagService = NoopFeatureFlagService;
39
+ //# sourceMappingURL=NoopFeatureFlagService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoopFeatureFlagService.js","sourceRoot":"","sources":["../../../../../src/helpers/data-access/feature-flags/providers/NoopFeatureFlagService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,6EAA0E;AAE1E,MAAa,sBAAuB,SAAQ,uDAA0B;IAClE,YAA6B,GAAY;QACrC,KAAK,EAAE,CAAC;QADiB,QAAG,GAAH,GAAG,CAAS;IAEzC,CAAC;IAEY,OAAO;;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,8BAA8B,CAAC,CAAC;YACxE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;KAAA;IAEY,UAAU;;YACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,8BAA8B,CAAC,CAAC;YACxE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;KAAA;IAEY,gBAAgB,CAAC,QAAgB,EAAE,YAAY,GAAG,KAAK;;YAChE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,8BAA8B,CAAC,CAAC;YACxE,OAAO,YAAY,CAAC;QACxB,CAAC;KAAA;CACJ;AAnBD,wDAmBC"}
@@ -0,0 +1,22 @@
1
+ interface IBaseConfig {
2
+ appId: string;
3
+ sdkKey: string;
4
+ useOfflineMode?: boolean;
5
+ fileDataSource?: string;
6
+ }
7
+ export interface IProxyModeConfig extends IBaseConfig {
8
+ useDaemonMode: false;
9
+ options: {
10
+ baseUri: string;
11
+ };
12
+ }
13
+ export interface IDaemonModeConfig extends IBaseConfig {
14
+ useDaemonMode: true;
15
+ options: {
16
+ redisConn: string;
17
+ redisCacheTtlInSeconds: number;
18
+ redisKeyPrefix: string;
19
+ };
20
+ }
21
+ export declare type LaunchDarklyConfig = IProxyModeConfig | IDaemonModeConfig;
22
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LaunchDarklyInterfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaunchDarklyInterfaces.js","sourceRoot":"","sources":["../../../../../../src/helpers/data-access/feature-flags/providers/interfaces/LaunchDarklyInterfaces.ts"],"names":[],"mappings":""}
@@ -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 InputGatewayConfiguration implements IConfiguration {
@@ -12,14 +13,14 @@ export declare class InputGatewayConfiguration implements IConfiguration {
12
13
  port: string | undefined;
13
14
  rabbit_connections: string[] | undefined;
14
15
  rabbit_exchange_name: string | undefined;
15
- s3: {
16
- access_key_id: string | undefined;
17
- bucket_name: string | undefined;
16
+ storage: {
18
17
  enabled: boolean;
19
- endpoint: string | undefined;
20
- secret_access_key: string | undefined;
21
- upload_part_size: number;
22
- upload_queue_size: number;
18
+ provider: {
19
+ azure: {
20
+ connectionString: string;
21
+ containerName: string;
22
+ };
23
+ };
23
24
  };
24
25
  saveRawDataWhitelist: any;
25
26
  sentry: {
@@ -48,5 +49,6 @@ export declare class InputGatewayConfiguration implements IConfiguration {
48
49
  shutdownTimeout: number;
49
50
  handlerTimeout: number;
50
51
  };
52
+ featureFlags: IFeatureFlagsConfig;
51
53
  constructor();
52
54
  }
@@ -16,7 +16,7 @@ const _monitoring_1 = require("../../monitoring");
16
16
  const tsyringe_1 = require("tsyringe");
17
17
  let InputGatewayConfiguration = class InputGatewayConfiguration {
18
18
  constructor() {
19
- var _a;
19
+ var _a, _b, _c, _d, _e, _f, _g;
20
20
  this.app_version = process.env.npm_package_version;
21
21
  this.app_name = process.env.APP_NAME || "input-gateway";
22
22
  this.colorful_logs = process.env.COLORFUL_LOGS;
@@ -28,14 +28,14 @@ let InputGatewayConfiguration = class InputGatewayConfiguration {
28
28
  this.port = process.env.PORT;
29
29
  this.rabbit_connections = (_a = process.env.RABBIT_CONN) === null || _a === void 0 ? void 0 : _a.split(",");
30
30
  this.rabbit_exchange_name = process.env.RABBIT_EXCHANGE_NAME;
31
- this.s3 = {
32
- access_key_id: process.env.S3_ACCESS_KEY_ID,
33
- bucket_name: process.env.S3_BUCKET_NAME,
34
- enabled: process.env.S3_ENABLED === "true",
35
- endpoint: process.env.S3_ENDPOINT,
36
- secret_access_key: process.env.S3_SECRET_ACCESS_KEY,
37
- upload_part_size: parseInt(process.env.S3_UPLOAD_PART_SIZE, 10) || 10,
38
- upload_queue_size: parseInt(process.env.S3_UPLOAD_QUEUE_SIZE, 10) || 2, // concurrency uploading, default 2
31
+ this.storage = {
32
+ enabled: process.env.STORAGE_ENABLED === "true",
33
+ provider: {
34
+ azure: {
35
+ connectionString: (_b = process.env.AZURE_BLOB_STORAGE_CONN) !== null && _b !== void 0 ? _b : "",
36
+ containerName: (_c = process.env.AZURE_BLOB_STORAGE_CONTAINER_NAME) !== null && _c !== void 0 ? _c : "",
37
+ },
38
+ },
39
39
  };
40
40
  this.sentry = {
41
41
  enabled: process.env.SENTRY_ENABLED === "true",
@@ -65,6 +65,26 @@ let InputGatewayConfiguration = class InputGatewayConfiguration {
65
65
  shutdownTimeout: process.env.LIGHTSHIP_SHUTDOWN_TIMEOUT ? parseInt(process.env.LIGHTSHIP_SHUTDOWN_TIMEOUT, 10) : 60000,
66
66
  handlerTimeout: process.env.LIGHTSHIP_HANDLER_TIMEOUT ? parseInt(process.env.LIGHTSHIP_HANDLER_TIMEOUT, 10) : 5000,
67
67
  };
68
+ this.featureFlags = {
69
+ enabled: process.env.FEATURE_FLAGS_ENABLED === "true",
70
+ provider: {
71
+ launchDarkly: {
72
+ appId: (_d = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_APP_ID) !== null && _d !== void 0 ? _d : "input-gateway",
73
+ sdkKey: (_e = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_SDK_KEY) !== null && _e !== void 0 ? _e : "sdk-test",
74
+ useOfflineMode: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_USE_OFFLINE_MODE === "true",
75
+ fileDataSource: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_FILE_DATA_SOURCE,
76
+ useDaemonMode: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_USE_DAEMON_MODE === "true",
77
+ options: {
78
+ baseUri: (_f = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_BASE_URI) !== null && _f !== void 0 ? _f : "http://localhost:8030",
79
+ redisConn: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_CONN,
80
+ redisCacheTtlInSeconds: process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_CACHE_TTL_IN_SECONDS
81
+ ? parseInt(process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_CACHE_TTL_IN_SECONDS)
82
+ : 60,
83
+ redisKeyPrefix: (_g = process.env.FEATURE_FLAGS_LAUNCH_DARKLY_REDIS_KEY_PREFIX) !== null && _g !== void 0 ? _g : "ld-ig",
84
+ },
85
+ },
86
+ },
87
+ };
68
88
  const saveRawDataWhitelist = new _helpers_1.ConfigLoader("saveRawDataWhitelist").conf;
69
89
  this.saveRawDataWhitelist = (0, utils_1.isEmpty)(saveRawDataWhitelist) ? [] : saveRawDataWhitelist;
70
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InputGatewayConfiguration.js","sourceRoot":"","sources":["../../../src/input-gateway/config/InputGatewayConfiguration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputGatewayConfiguration.js","sourceRoot":"","sources":["../../../src/input-gateway/config/InputGatewayConfiguration.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { IJaegerConfig } from "../../monitoring";
2
2
  import { ISentryConfig } from "../../monitoring/sentry/sentry-provider";
3
3
  import { IMetricsConfig } from "../../monitoring/metrics/metrics-interface";
4
+ import { IStorageConfig } from "../../helpers/data-access/storage";
4
5
  export interface ISaveRawDataWhitelist {
5
6
  route: string;
6
7
  withHeaders: boolean;
@@ -17,15 +18,7 @@ export interface IConfiguration {
17
18
  port: string | undefined;
18
19
  rabbit_connections: string[] | undefined;
19
20
  rabbit_exchange_name: string | undefined;
20
- s3: {
21
- access_key_id: string | undefined;
22
- bucket_name: string | undefined;
23
- enabled: boolean;
24
- endpoint: string | undefined;
25
- secret_access_key: string | undefined;
26
- upload_part_size: number;
27
- upload_queue_size: number;
28
- };
21
+ storage: IStorageConfig;
29
22
  sentry: ISentryConfig;
30
23
  saveRawDataWhitelist: ISaveRawDataWhitelist[];
31
24
  metrics: IMetricsConfig;
@@ -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 { InputGatewayConfiguration } from "../config/InputGatewayConfiguration";
5
+ import { Disposable } from "tsyringe";
6
+ export declare class FeatureFlagServiceWrapper extends AbstractFeatureFlagServiceWrapper implements Disposable {
7
+ protected _service: IFeatureFlagService;
8
+ constructor(config: InputGatewayConfiguration, 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 InputGatewayConfiguration_1 = require("../config/InputGatewayConfiguration");
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", [InputGatewayConfiguration_1.InputGatewayConfiguration, Object])
37
+ ], FeatureFlagServiceWrapper);
38
+ exports.FeatureFlagServiceWrapper = FeatureFlagServiceWrapper;
39
+ //# sourceMappingURL=FeatureFlagServiceWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagServiceWrapper.js","sourceRoot":"","sources":["../../../src/input-gateway/data-access/FeatureFlagServiceWrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2EAA0H;AAC1H,6EAA+F;AAE/F,mFAAiF;AACjF,0DAAwD;AACxD,4CAA8C;AAC9C,uCAA0D;AAG1D,IAAa,yBAAyB,GAAtC,MAAa,yBAA0B,SAAQ,2CAAiC;IAG5E,YAA2C,MAAiC,EAAiC,GAAY;QACrH,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;AAjBY,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,+BAAc,CAAC,MAAM,CAAC,CAAA;IAAqC,WAAA,IAAA,iBAAM,EAAC,+BAAc,CAAC,MAAM,CAAC,CAAA;qCAAzD,qDAAyB;GAHnE,yBAAyB,CAiBrC;AAjBY,8DAAyB"}
@@ -0,0 +1,8 @@
1
+ import { AbstractStorageService } from "../../helpers/data-access/storage";
2
+ import { ILogger } from "../../helpers";
3
+ import { IConfiguration } from "../config";
4
+ export declare class StorageServiceProvider {
5
+ protected _service: AbstractStorageService;
6
+ constructor(config: IConfiguration, log: ILogger);
7
+ get service(): AbstractStorageService;
8
+ }