feature-toggle-client 1.7.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
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); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
4
5
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
6
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
@@ -35,6 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
36
  }
36
37
  };
37
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DashboardActiveMessage = void 0;
38
40
  var FeatureToggleClientService_1 = require("./FeatureToggleClientService");
39
41
  exports.DashboardActiveMessage = 'dashboard-active-message';
40
42
  var ClassFeatures = (function () {
@@ -65,4 +67,4 @@ var ClassFeatures = (function () {
65
67
  };
66
68
  return ClassFeatures;
67
69
  }());
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3NGZWF0dXJlc0V4YW1wbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ2xhc3NGZWF0dXJlc0V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJFQUEwRTtBQWE3RCxRQUFBLHNCQUFzQixHQUFHLDBCQUEwQixDQUFDO0FBQ2pFO0lBQUE7SUEyQkEsQ0FBQztJQXRCYyxxQ0FBYSxHQUExQjs7Ozs7O3dCQUlFLEtBQUEsSUFBSSxDQUFBO3dCQUFpQyxXQUFNLHVEQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUNsRyw4QkFBc0IsQ0FDdkIsRUFBQTs7d0JBRkQsR0FBSyw2QkFBNkIsR0FBRyxTQUVwQyxDQUFDO3dCQUtGLEtBQUEsSUFBSSxDQUFBO3dCQUFxQyxXQUFNLHVEQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDLG9CQUFvQixDQUMxRyw4QkFBc0IsQ0FDdkIsRUFBQTs7d0JBRkQsR0FBSyxpQ0FBaUMsR0FBRyxTQUV4QyxDQUFDO3dCQUtGLEtBQUEsSUFBSSxDQUFBO3dCQUE0QyxXQUFNLHVEQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDLDJCQUEyQixDQUN4SCw4QkFBc0IsQ0FDdkIsRUFBQTs7d0JBRkQsR0FBSyx3Q0FBd0MsR0FBRyxTQUUvQyxDQUFDOzs7OztLQUNIO0lBQ0gsb0JBQUM7QUFBRCxDQUFDLEFBM0JELElBMkJDIn0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3NGZWF0dXJlc0V4YW1wbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ2xhc3NGZWF0dXJlc0V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQTBFO0FBYTdELFFBQUEsc0JBQXNCLEdBQUcsMEJBQTBCLENBQUM7QUFDakU7SUFBQTtJQTJCQSxDQUFDO0lBdEJjLHFDQUFhLEdBQTFCOzs7Ozs7d0JBSUUsS0FBQSxJQUFJLENBQUE7d0JBQWlDLFdBQU0sdURBQTBCLENBQUMsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQ2xHLDhCQUFzQixDQUN2QixFQUFBOzt3QkFGRCxHQUFLLDZCQUE2QixHQUFHLFNBRXBDLENBQUM7d0JBS0YsS0FBQSxJQUFJLENBQUE7d0JBQXFDLFdBQU0sdURBQTBCLENBQUMsV0FBVyxFQUFFLENBQUMsb0JBQW9CLENBQzFHLDhCQUFzQixDQUN2QixFQUFBOzt3QkFGRCxHQUFLLGlDQUFpQyxHQUFHLFNBRXhDLENBQUM7d0JBS0YsS0FBQSxJQUFJLENBQUE7d0JBQTRDLFdBQU0sdURBQTBCLENBQUMsV0FBVyxFQUFFLENBQUMsMkJBQTJCLENBQ3hILDhCQUFzQixDQUN2QixFQUFBOzt3QkFGRCxHQUFLLHdDQUF3QyxHQUFHLFNBRS9DLENBQUM7Ozs7O0tBQ0g7SUFDSCxvQkFBQztBQUFELENBQUMsQUEzQkQsSUEyQkMifQ==
@@ -1,27 +1,29 @@
1
1
  import { Application } from './types/Application';
2
2
  import { LDClient, LDOptions } from 'launchdarkly-js-client-sdk';
3
3
  import { UserAccount } from './types/UserAccount';
4
- import { FeatureToggleApiService } from './FeatureToggleApiService';
5
- import { IFeatureToggleServiceSettings } from './types/IFeatureToggleServiceSettings';
4
+ import { Contract } from './types/Contract';
6
5
  export declare class FeatureToggleClientService {
7
6
  private static instance;
8
7
  private userInstance;
9
8
  private applicationInstance;
10
- private apiServiceInstance;
9
+ private multiContextInstance?;
11
10
  private requestTimeout;
12
11
  private constructor();
13
12
  getUserInstance(): LDClient;
14
13
  getApplicationInstance(): LDClient;
15
- getApiServiceInstance(): FeatureToggleApiService;
14
+ getMultiContextInstance(): LDClient;
16
15
  setRequestTimeouts(timeout: number): void;
17
16
  static getInstance(): FeatureToggleClientService;
18
17
  initializeUser(payload: UserAccount, ldclientSdkKey: string, options?: LDOptions): void;
19
18
  initializeApplication(payload: Application, ldclientSdkKey: string, options?: LDOptions): void;
20
- initializeApiService(settings: IFeatureToggleServiceSettings): void;
19
+ initializeWithContext(ldclientSdkKey: string, contexts: {
20
+ user?: UserAccount;
21
+ application?: Application;
22
+ contract?: Contract;
23
+ }, options?: LDOptions): void;
21
24
  private solveRequestWithTimeout;
22
25
  isFeatureEnabled(featureKey: string, defaultValue?: boolean): Promise<any>;
23
26
  isUserFeatureEnabled(featureKey: string, defaultValue?: boolean): Promise<any>;
24
27
  isApplicationFeatureEnabled(featureKey: string, defaultValue?: boolean): Promise<any>;
25
- addUserToFeatureToggle(user: UserAccount, featureKey: string): Promise<boolean>;
26
- addUsersToFeatureToggle(users: UserAccount[], featureKey: string): Promise<boolean>;
28
+ isMultiContextFeatureEnabled(featureKey: string, defaultValue?: boolean): Promise<any>;
27
29
  }
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
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); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
4
5
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
6
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
@@ -35,8 +36,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
36
  }
36
37
  };
37
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.FeatureToggleClientService = void 0;
38
40
  var FeatureToggleInstanceFactory_1 = require("./FeatureToggleInstanceFactory");
39
- var FeatureToggleApiService_1 = require("./FeatureToggleApiService");
40
41
  var DEFAULT_REQUEST_TIMEOUT = 5000;
41
42
  var FeatureToggleClientService = (function () {
42
43
  function FeatureToggleClientService() {
@@ -51,8 +52,8 @@ var FeatureToggleClientService = (function () {
51
52
  FeatureToggleClientService.prototype.getApplicationInstance = function () {
52
53
  return this.applicationInstance;
53
54
  };
54
- FeatureToggleClientService.prototype.getApiServiceInstance = function () {
55
- return this.apiServiceInstance;
55
+ FeatureToggleClientService.prototype.getMultiContextInstance = function () {
56
+ return this.multiContextInstance;
56
57
  };
57
58
  FeatureToggleClientService.prototype.setRequestTimeouts = function (timeout) {
58
59
  this.requestTimeout = timeout;
@@ -63,13 +64,19 @@ var FeatureToggleClientService = (function () {
63
64
  return FeatureToggleClientService.instance;
64
65
  };
65
66
  FeatureToggleClientService.prototype.initializeUser = function (payload, ldclientSdkKey, options) {
66
- this.userInstance = new FeatureToggleInstanceFactory_1.FeatureToggleInstanceFactory(payload, ldclientSdkKey, options).getClient();
67
+ this.userInstance = FeatureToggleInstanceFactory_1.FeatureToggleInstanceFactory
68
+ .createSingleContext(payload, ldclientSdkKey, options)
69
+ .getClient();
67
70
  };
68
71
  FeatureToggleClientService.prototype.initializeApplication = function (payload, ldclientSdkKey, options) {
69
- this.applicationInstance = new FeatureToggleInstanceFactory_1.FeatureToggleInstanceFactory(payload, ldclientSdkKey, options).getClient();
72
+ this.applicationInstance = FeatureToggleInstanceFactory_1.FeatureToggleInstanceFactory
73
+ .createSingleContext(payload, ldclientSdkKey, options)
74
+ .getClient();
70
75
  };
71
- FeatureToggleClientService.prototype.initializeApiService = function (settings) {
72
- this.apiServiceInstance = new FeatureToggleApiService_1.FeatureToggleApiService(settings);
76
+ FeatureToggleClientService.prototype.initializeWithContext = function (ldclientSdkKey, contexts, options) {
77
+ this.multiContextInstance = FeatureToggleInstanceFactory_1.FeatureToggleInstanceFactory
78
+ .createMultiContext(ldclientSdkKey, contexts.user, contexts.application, contexts.contract, options)
79
+ .getClient();
73
80
  };
74
81
  FeatureToggleClientService.prototype.solveRequestWithTimeout = function (requestPromise, defaultValue) {
75
82
  var _this = this;
@@ -84,18 +91,21 @@ var FeatureToggleClientService = (function () {
84
91
  return __generator(this, function (_b) {
85
92
  switch (_b.label) {
86
93
  case 0:
87
- _b.trys.push([0, 2, , 3]);
88
- return [4, this.solveRequestWithTimeout(Promise.all([
89
- this.isUserFeatureEnabled(featureKey, defaultValue),
90
- this.isApplicationFeatureEnabled(featureKey, defaultValue)
91
- ]), defaultValue)];
92
- case 1:
94
+ _b.trys.push([0, 4, , 5]);
95
+ if (!this.multiContextInstance) return [3, 2];
96
+ return [4, this.solveRequestWithTimeout(this.isMultiContextFeatureEnabled(featureKey, defaultValue), defaultValue)];
97
+ case 1: return [2, _b.sent()];
98
+ case 2: return [4, this.solveRequestWithTimeout(Promise.all([
99
+ this.isUserFeatureEnabled(featureKey, defaultValue),
100
+ this.isApplicationFeatureEnabled(featureKey, defaultValue)
101
+ ]), defaultValue)];
102
+ case 3:
93
103
  _a = _b.sent(), userInstanceReadyPromise = _a[0], applicationInstanceReadyPromise = _a[1];
94
104
  return [2, applicationInstanceReadyPromise || userInstanceReadyPromise];
95
- case 2:
105
+ case 4:
96
106
  e_1 = _b.sent();
97
107
  throw e_1;
98
- case 3: return [2];
108
+ case 5: return [2];
99
109
  }
100
110
  });
101
111
  });
@@ -158,21 +168,36 @@ var FeatureToggleClientService = (function () {
158
168
  }); });
159
169
  return withApplicationFeaturePromise;
160
170
  };
161
- FeatureToggleClientService.prototype.addUserToFeatureToggle = function (user, featureKey) {
162
- return __awaiter(this, void 0, void 0, function () {
163
- return __generator(this, function (_a) {
164
- return [2, this.apiServiceInstance.addUsersToFeatureToggle([user], featureKey)];
165
- });
166
- });
167
- };
168
- FeatureToggleClientService.prototype.addUsersToFeatureToggle = function (users, featureKey) {
169
- return __awaiter(this, void 0, void 0, function () {
171
+ FeatureToggleClientService.prototype.isMultiContextFeatureEnabled = function (featureKey, defaultValue) {
172
+ var _this = this;
173
+ if (defaultValue === void 0) { defaultValue = false; }
174
+ var withMultiContextFeaturePromise = new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
175
+ var e_4;
170
176
  return __generator(this, function (_a) {
171
- return [2, this.apiServiceInstance.addUsersToFeatureToggle(users, featureKey)];
177
+ switch (_a.label) {
178
+ case 0:
179
+ _a.trys.push([0, 4, , 5]);
180
+ if (!this.multiContextInstance) return [3, 2];
181
+ return [4, this.multiContextInstance.waitForInitialization()];
182
+ case 1:
183
+ _a.sent();
184
+ resolve(this.multiContextInstance.variation(featureKey, defaultValue));
185
+ return [3, 3];
186
+ case 2:
187
+ resolve(undefined);
188
+ _a.label = 3;
189
+ case 3: return [3, 5];
190
+ case 4:
191
+ e_4 = _a.sent();
192
+ reject(defaultValue);
193
+ return [3, 5];
194
+ case 5: return [2];
195
+ }
172
196
  });
173
- });
197
+ }); });
198
+ return withMultiContextFeaturePromise;
174
199
  };
175
200
  return FeatureToggleClientService;
176
201
  }());
177
202
  exports.FeatureToggleClientService = FeatureToggleClientService;
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVRvZ2dsZUNsaWVudFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRmVhdHVyZVRvZ2dsZUNsaWVudFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLCtFQUE4RTtBQUc5RSxxRUFBb0U7QUFHcEUsSUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFFckM7SUFPRTtRQUZRLG1CQUFjLEdBQVcsdUJBQXVCLENBQUM7UUFHdkQsSUFBSSwwQkFBMEIsQ0FBQyxRQUFRLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FDYiw0RkFBNEYsQ0FDN0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUtNLG9EQUFlLEdBQXRCO1FBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFLTSwyREFBc0IsR0FBN0I7UUFDRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBS08sMERBQXFCLEdBQTVCO1FBQ0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUtNLHVEQUFrQixHQUF6QixVQUEwQixPQUFlO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFLYSxzQ0FBVyxHQUF6QjtRQUNFLDBCQUEwQixDQUFDLFFBQVE7WUFDakMsMEJBQTBCLENBQUMsUUFBUSxJQUFJLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUMxRSxPQUFPLDBCQUEwQixDQUFDLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBTU0sbURBQWMsR0FBckIsVUFDRSxPQUFvQixFQUNwQixjQUFzQixFQUN0QixPQUFtQjtRQUduQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksMkRBQTRCLENBQ2xELE9BQU8sRUFDUCxjQUFjLEVBQ2QsT0FBTyxDQUNSLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQU1NLDBEQUFxQixHQUE1QixVQUNFLE9BQW9CLEVBQ3BCLGNBQXNCLEVBQ3RCLE9BQW1CO1FBRW5CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLDJEQUE0QixDQUN6RCxPQUFPLEVBQ1AsY0FBYyxFQUNkLE9BQU8sQ0FDUixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFNTyx5REFBb0IsR0FBM0IsVUFDQyxRQUF1QztRQUV2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxpREFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBTU8sNERBQXVCLEdBQS9CLFVBQWdDLGNBQTRCLEVBQUUsWUFBcUI7UUFBbkYsaUJBSUM7UUFIQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBQSxPQUFPO2dCQUN0RCxVQUFVLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBckIsQ0FBcUIsRUFBRSxLQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQU9ZLHFEQUFnQixHQUE3QixVQUNFLFVBQWtCLEVBQ2xCLFlBQTZCO1FBQTdCLDZCQUFBLEVBQUEsb0JBQTZCOzs7Ozs7O3dCQU12QixXQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dDQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztnQ0FDbkQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7NkJBQzNELENBQUMsRUFBRSxZQUFZLENBQUMsRUFBQTs7d0JBTlgsS0FHRixTQUdhLEVBTGYsd0JBQXdCLFFBQUEsRUFDeEIsK0JBQStCLFFBQUE7d0JBTWpDLFdBQU8sK0JBQStCLElBQUksd0JBQXdCLEVBQUM7Ozt3QkFFbkUsTUFBTSxHQUFDLENBQUM7Ozs7O0tBRVg7SUFPTSx5REFBb0IsR0FBM0IsVUFDRSxVQUFrQixFQUNsQixZQUE2QjtRQUYvQixpQkFrQkM7UUFoQkMsNkJBQUEsRUFBQSxvQkFBNkI7UUFFN0IsSUFBTSxzQkFBc0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFPLE9BQU8sRUFBRSxNQUFNOzs7Ozs7NkJBRXpELElBQUksQ0FBQyxZQUFZLEVBQWpCLGNBQWlCO3dCQUNuQixXQUFNLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsRUFBQTs7d0JBQS9DLFNBQStDLENBQUM7d0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQzs7O3dCQUUvRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Ozs7O3dCQUdyQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Ozs7O2FBRXhCLENBQUMsQ0FBQztRQUVILE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQU9NLGdFQUEyQixHQUFsQyxVQUNFLFVBQWtCLEVBQ2xCLFlBQTZCO1FBRi9CLGlCQW9CQztRQWxCQyw2QkFBQSxFQUFBLG9CQUE2QjtRQUU3QixJQUFNLDZCQUE2QixHQUFHLElBQUksT0FBTyxDQUMvQyxVQUFPLE9BQU8sRUFBRSxNQUFNOzs7Ozs7NkJBRWQsSUFBSSxDQUFDLG1CQUFtQixFQUF4QixjQUF3Qjt3QkFDMUIsV0FBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsRUFBQTs7d0JBQXRELFNBQXNELENBQUM7d0JBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDOzs7d0JBRXRFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzs7Ozs7d0JBR3JCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzs7Ozs7YUFFeEIsQ0FDRixDQUFDO1FBRUYsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0lBT1ksMkRBQXNCLEdBQW5DLFVBQ0UsSUFBaUIsRUFDakIsVUFBa0I7OztnQkFFbEIsV0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsRUFBQzs7O0tBQzVFO0lBT1ksNERBQXVCLEdBQXBDLFVBQ0UsS0FBb0IsRUFDcEIsVUFBa0I7OztnQkFFbEIsV0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFDOzs7S0FDM0U7SUFDSCxpQ0FBQztBQUFELENBQUMsQUE1TUQsSUE0TUM7QUE1TVksZ0VBQTBCIn0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVRvZ2dsZUNsaWVudFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRmVhdHVyZVRvZ2dsZUNsaWVudFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsK0VBQThFO0FBSzlFLElBQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBRXJDO0lBT0U7UUFGUSxtQkFBYyxHQUFXLHVCQUF1QixDQUFDO1FBR3ZELElBQUksMEJBQTBCLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEZBQTRGLENBQzdGLENBQUM7U0FDSDtJQUNILENBQUM7SUFLTSxvREFBZSxHQUF0QjtRQUNFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBS00sMkRBQXNCLEdBQTdCO1FBQ0UsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUtNLDREQUF1QixHQUE5QjtRQUNFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFLTSx1REFBa0IsR0FBekIsVUFBMEIsT0FBZTtRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0lBS2Esc0NBQVcsR0FBekI7UUFDRSwwQkFBMEIsQ0FBQyxRQUFRO1lBQ2pDLDBCQUEwQixDQUFDLFFBQVEsSUFBSSxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDMUUsT0FBTywwQkFBMEIsQ0FBQyxRQUFRLENBQUM7SUFDN0MsQ0FBQztJQU1NLG1EQUFjLEdBQXJCLFVBQ0UsT0FBb0IsRUFDcEIsY0FBc0IsRUFDdEIsT0FBbUI7UUFHbkIsSUFBSSxDQUFDLFlBQVksR0FBRywyREFBNEI7YUFDN0MsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUM7YUFDckQsU0FBUyxFQUFFLENBQUM7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
@@ -1,10 +1,13 @@
1
1
  import { LDClient, LDOptions } from 'launchdarkly-js-client-sdk';
2
2
  import { UserAccount } from './types/UserAccount';
3
3
  import { Application } from './types/Application';
4
+ import { Contract } from './types/Contract';
4
5
  export declare class FeatureToggleInstanceFactory {
5
6
  private client;
6
7
  private defaultOptions;
7
- constructor(payload: UserAccount | Application, ldclientSdkKey: string, options?: LDOptions);
8
+ private constructor();
8
9
  getClient(): LDClient;
9
- private initLaunchDarklyUser;
10
+ static createSingleContext(payload: UserAccount | Application, ldclientSdkKey: string, options?: LDOptions): FeatureToggleInstanceFactory;
11
+ static createMultiContext(ldclientSdkKey: string, user?: UserAccount, application?: Application, contract?: Contract, options?: LDOptions): FeatureToggleInstanceFactory;
12
+ private static getSingleData;
10
13
  }
@@ -11,52 +11,95 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.FeatureToggleInstanceFactory = void 0;
14
15
  var launchdarkly_js_client_sdk_1 = require("launchdarkly-js-client-sdk");
15
16
  var uuid = require("uuid");
16
17
  var getApplicationData = function (p) {
17
- return p.hasCluster
18
- ? {
19
- custom: {
20
- cluster: p.cluster,
21
- group: 'bot',
22
- tenantId: p.tenantId,
23
- },
24
- email: p.shortName + "@msging.net",
25
- key: p.shortName,
26
- name: p.name,
27
- }
28
- : {
29
- custom: {
30
- group: 'bot',
31
- },
32
- email: 'free@free.com',
33
- key: 'free',
34
- name: 'free',
35
- };
18
+ var context = {
19
+ kind: 'bot',
20
+ key: p.shortName || 'free',
21
+ name: p.name || 'free',
22
+ email: p.shortName ? "".concat(p.shortName, "@msging.net") : 'free@free.com',
23
+ };
24
+ if (p.hasCluster) {
25
+ context.hasCluster = true;
26
+ context.cluster = p.cluster;
27
+ context.tenantId = p.tenantId;
28
+ }
29
+ if (!context.key) {
30
+ throw new Error('Application context key is empty or undefined');
31
+ }
32
+ return context;
36
33
  };
37
34
  var getUserData = function (p) {
38
- return p.anonymous
39
- ? __assign({ anonymous: true, key: uuid.v4() }, p) : {
40
- custom: {
41
- creationDate: p.creationDate,
42
- group: 'users',
43
- },
44
- email: p.email,
35
+ var context = p.anonymous
36
+ ? __assign({ kind: 'user', key: uuid.v4(), anonymous: true }, p) : {
37
+ kind: 'user',
45
38
  key: p.email,
46
39
  name: p.fullName,
40
+ email: p.email,
41
+ creationDate: p.creationDate,
42
+ };
43
+ if (!context.key) {
44
+ throw new Error('User context key is empty or undefined');
45
+ }
46
+ return context;
47
+ };
48
+ var getContractData = function (contract) {
49
+ var context = {
50
+ kind: 'contract',
51
+ key: contract.tenantId,
52
+ tenantId: contract.tenantId,
53
+ cluster: contract.cluster,
47
54
  };
55
+ if (contract.custom) {
56
+ context.custom = contract.custom;
57
+ }
58
+ if (!context.key) {
59
+ throw new Error('Contract context key is empty or undefined');
60
+ }
61
+ return context;
62
+ };
63
+ var getContext = function (user, application, contract) {
64
+ var contexts = {};
65
+ if (user) {
66
+ contexts.user = getUserData(user);
67
+ }
68
+ if (application) {
69
+ contexts.bot = getApplicationData(application);
70
+ }
71
+ if (contract) {
72
+ contexts.contract = getContractData(contract);
73
+ }
74
+ if (Object.keys(contexts).length === 0) {
75
+ throw new Error('At least one context (user, application, or contract) must be provided. ');
76
+ }
77
+ if (Object.keys(contexts).length === 1) {
78
+ var singleContext = Object.values(contexts)[0];
79
+ return singleContext;
80
+ }
81
+ var multiContext = __assign({ kind: 'multi' }, contexts);
82
+ return multiContext;
48
83
  };
49
84
  var FeatureToggleInstanceFactory = (function () {
50
- function FeatureToggleInstanceFactory(payload, ldclientSdkKey, options) {
85
+ function FeatureToggleInstanceFactory(ldclientSdkKey, context, options) {
51
86
  this.defaultOptions = {
52
87
  bootstrap: 'localStorage'
53
88
  };
54
- this.client = launchdarkly_js_client_sdk_1.initialize(ldclientSdkKey, this.initLaunchDarklyUser(payload), __assign({}, options, this.defaultOptions));
89
+ this.client = (0, launchdarkly_js_client_sdk_1.initialize)(ldclientSdkKey, context, __assign(__assign({}, options), this.defaultOptions));
55
90
  }
56
91
  FeatureToggleInstanceFactory.prototype.getClient = function () {
57
92
  return this.client;
58
93
  };
59
- FeatureToggleInstanceFactory.prototype.initLaunchDarklyUser = function (payload) {
94
+ FeatureToggleInstanceFactory.createSingleContext = function (payload, ldclientSdkKey, options) {
95
+ var context = this.getSingleData(payload);
96
+ return new FeatureToggleInstanceFactory(ldclientSdkKey, context, options);
97
+ };
98
+ FeatureToggleInstanceFactory.createMultiContext = function (ldclientSdkKey, user, application, contract, options) {
99
+ var context = getContext(user, application, contract);
100
+ return new FeatureToggleInstanceFactory(ldclientSdkKey, context, options);
101
+ };
102
+ FeatureToggleInstanceFactory.getSingleData = function (payload) {
60
103
  var isUser = function () { return payload.email; };
61
104
  if (isUser()) {
62
105
  return getUserData(payload);
@@ -66,4 +109,4 @@ var FeatureToggleInstanceFactory = (function () {
66
109
  return FeatureToggleInstanceFactory;
67
110
  }());
68
111
  exports.FeatureToggleInstanceFactory = FeatureToggleInstanceFactory;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVRvZ2dsZUluc3RhbmNlRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9GZWF0dXJlVG9nZ2xlSW5zdGFuY2VGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSx5RUFBcUY7QUFHckYsMkJBQTZCO0FBRTdCLElBQU0sa0JBQWtCLEdBQUcsVUFBQyxDQUFNO0lBQ2hDLE9BQUEsQ0FBQyxDQUFDLFVBQVU7UUFDVixDQUFDLENBQUM7WUFDRSxNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dCQUNsQixLQUFLLEVBQUUsS0FBSztnQkFDWixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7YUFDckI7WUFDRCxLQUFLLEVBQUssQ0FBQyxDQUFDLFNBQVMsZ0JBQWE7WUFDbEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTO1lBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtTQUNiO1FBQ0gsQ0FBQyxDQUFDO1lBQ0UsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxLQUFLO2FBQ2I7WUFDRCxLQUFLLEVBQUUsZUFBZTtZQUN0QixHQUFHLEVBQUUsTUFBTTtZQUNYLElBQUksRUFBRSxNQUFNO1NBQ2I7QUFsQkwsQ0FrQkssQ0FBQztBQUVSLElBQU0sV0FBVyxHQUFHLFVBQUMsQ0FBTTtJQUN6QixPQUFBLENBQUMsQ0FBQyxTQUFTO1FBQ1QsQ0FBQyxZQUNDLFNBQVMsRUFBRSxJQUFJLEVBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFDWCxDQUFDLEVBRU4sQ0FBQyxDQUFDO1FBQ0EsTUFBTSxFQUFFO1lBQ04sWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO1lBQzVCLEtBQUssRUFBRSxPQUFPO1NBQ2Y7UUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDZCxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDWixJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVE7S0FDakI7QUFkSCxDQWNHLENBQUM7QUFFTjtJQU1FLHNDQUFZLE9BQWtDLEVBQUUsY0FBc0IsRUFBRSxPQUFtQjtRQUpuRixtQkFBYyxHQUF1QjtZQUMzQyxTQUFTLEVBQUUsY0FBYztTQUMxQixDQUFDO1FBR0EsSUFBSSxDQUFDLE1BQU0sR0FBRyx1Q0FBVSxDQUN0QixjQUFjLEVBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxlQUM3QixPQUFPLEVBQUssSUFBSSxDQUFDLGNBQWMsRUFDckMsQ0FBQztJQUNKLENBQUM7SUFLTSxnREFBUyxHQUFoQjtRQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBTU8sMkRBQW9CLEdBQTVCLFVBQTZCLE9BQVk7UUFDdkMsSUFBTSxNQUFNLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxLQUFLLEVBQWIsQ0FBYSxDQUFDO1FBRW5DLElBQUksTUFBTSxFQUFFLEVBQUU7WUFDWixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUVELE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNILG1DQUFDO0FBQUQsQ0FBQyxBQWxDRCxJQWtDQztBQWxDWSxvRUFBNEIifQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVRvZ2dsZUluc3RhbmNlRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9GZWF0dXJlVG9nZ2xlSW5zdGFuY2VGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUVBQXdGO0FBSXhGLDJCQUE2QjtBQUU3QixJQUFNLGtCQUFrQixHQUFHLFVBQUMsQ0FBTTtJQUNoQyxJQUFNLE9BQU8sR0FBRztRQUNkLElBQUksRUFBRSxLQUFLO1FBQ1gsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTTtRQUMxQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxNQUFNO1FBQ3RCLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFHLENBQUMsQ0FBQyxTQUFTLGdCQUFhLENBQUMsQ0FBQyxDQUFDLGVBQWU7S0FDbkUsQ0FBQztJQUVELElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRTtRQUNoQixPQUFlLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQyxPQUFlLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDcEMsT0FBZSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQ3hDO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0tBQ2xFO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBTUYsSUFBTSxXQUFXLEdBQUcsVUFBQyxDQUFNO0lBQ3pCLElBQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxTQUFTO1FBQ3pCLENBQUMsWUFDQyxJQUFJLEVBQUUsTUFBTSxFQUNaLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQ2QsU0FBUyxFQUFFLElBQUksSUFDWixDQUFDLEVBRU4sQ0FBQyxD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
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export { FeatureToggleClientService } from './FeatureToggleClientService';
2
+ export { FeatureToggleInstanceFactory } from './FeatureToggleInstanceFactory';
2
3
  export { IToggleable } from './types/IToggleable';
3
- export { IFeatureToggleServiceSettings } from './types/IFeatureToggleServiceSettings';
4
+ export { UserAccount } from './types/UserAccount';
5
+ export { Application } from './types/Application';
6
+ export { Contract } from './types/Contract';
package/dist/index.js CHANGED
@@ -1,5 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Contract = exports.Application = exports.UserAccount = exports.FeatureToggleInstanceFactory = exports.FeatureToggleClientService = void 0;
3
4
  var FeatureToggleClientService_1 = require("./FeatureToggleClientService");
4
- exports.FeatureToggleClientService = FeatureToggleClientService_1.FeatureToggleClientService;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyRUFBMEU7QUFBakUsa0VBQUEsMEJBQTBCLENBQUEifQ==
5
+ Object.defineProperty(exports, "FeatureToggleClientService", { enumerable: true, get: function () { return FeatureToggleClientService_1.FeatureToggleClientService; } });
6
+ var FeatureToggleInstanceFactory_1 = require("./FeatureToggleInstanceFactory");
7
+ Object.defineProperty(exports, "FeatureToggleInstanceFactory", { enumerable: true, get: function () { return FeatureToggleInstanceFactory_1.FeatureToggleInstanceFactory; } });
8
+ var UserAccount_1 = require("./types/UserAccount");
9
+ Object.defineProperty(exports, "UserAccount", { enumerable: true, get: function () { return UserAccount_1.UserAccount; } });
10
+ var Application_1 = require("./types/Application");
11
+ Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return Application_1.Application; } });
12
+ var Contract_1 = require("./types/Contract");
13
+ Object.defineProperty(exports, "Contract", { enumerable: true, get: function () { return Contract_1.Contract; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkVBQTBFO0FBQWpFLHdJQUFBLDBCQUEwQixPQUFBO0FBQ25DLCtFQUE4RTtBQUFyRSw0SUFBQSw0QkFBNEIsT0FBQTtBQUVyQyxtREFBa0Q7QUFBekMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLG1EQUFrRDtBQUF6QywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsNkNBQTRDO0FBQW5DLG9HQUFBLFFBQVEsT0FBQSJ9
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddUserRequest = void 0;
3
4
  var AddUserRequest = (function () {
4
5
  function AddUserRequest(init) {
5
6
  Object.assign(this, init);
@@ -7,4 +8,4 @@ var AddUserRequest = (function () {
7
8
  return AddUserRequest;
8
9
  }());
9
10
  exports.AddUserRequest = AddUserRequest;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlclJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQWRkVXNlclJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQTtJQUtFLHdCQUFZLElBQThCO1FBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDSCxxQkFBQztBQUFELENBQUMsQUFSRCxJQVFDO0FBUlksd0NBQWMifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlclJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQWRkVXNlclJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7SUFLRSx3QkFBWSxJQUE4QjtRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBUkQsSUFRQztBQVJZLHdDQUFjIn0=
@@ -1,17 +1,18 @@
1
1
  export declare class Application {
2
- imageUri: string;
3
- id: number;
2
+ imageUri?: string;
3
+ id?: number;
4
4
  shortName: string;
5
- name: string;
6
- accessKey: string;
7
- template: string;
8
- created: string;
9
- activatedServices: any[];
10
- applicationUserPermissionModel: IApplicationUserPermissionModel[];
11
- applicationDomainActivations: IApplicationDomainActivation[];
12
- isTemplate: boolean;
13
- status: string;
14
- applicationJson: IApplicationJson;
5
+ name?: string;
6
+ accessKey?: string;
7
+ template?: string;
8
+ created?: string;
9
+ activatedServices?: any[];
10
+ applicationUserPermissionModel?: IApplicationUserPermissionModel[];
11
+ applicationDomainActivations?: IApplicationDomainActivation[];
12
+ isTemplate?: boolean;
13
+ status?: string;
14
+ hasCluster?: boolean;
15
+ applicationJson?: IApplicationJson;
15
16
  constructor(init?: Partial<Application>);
16
17
  }
17
18
  interface IApplicationJson {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Application = void 0;
3
4
  var Application = (function () {
4
5
  function Application(init) {
5
6
  Object.assign(this, init);
@@ -7,4 +8,4 @@ var Application = (function () {
7
8
  return Application;
8
9
  }());
9
10
  exports.Application = Application;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTtJQWVFLHFCQUFZLElBQTJCO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDSCxrQkFBQztBQUFELENBQUMsQUFsQkQsSUFrQkM7QUFsQlksa0NBQVcifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7SUFnQkUscUJBQVksSUFBMkI7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQW5CRCxJQW1CQztBQW5CWSxrQ0FBVyJ9
@@ -0,0 +1,6 @@
1
+ export declare class Contract {
2
+ tenantId: string;
3
+ cluster?: string;
4
+ custom?: Record<string, any>;
5
+ constructor(init?: Partial<Contract>);
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Contract = void 0;
4
+ var Contract = (function () {
5
+ function Contract(init) {
6
+ Object.assign(this, init);
7
+ }
8
+ return Contract;
9
+ }());
10
+ exports.Contract = Contract;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQ29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUE7SUFLRSxrQkFBWSxJQUF3QjtRQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0gsZUFBQztBQUFELENBQUMsQUFSRCxJQVFDO0FBUlksNEJBQVEifQ==
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Instruction = void 0;
3
4
  var Instruction = (function () {
4
5
  function Instruction(init) {
5
6
  Object.assign(this, init);
@@ -7,4 +8,4 @@ var Instruction = (function () {
7
8
  return Instruction;
8
9
  }());
9
10
  exports.Instruction = Instruction;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvSW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTtJQUtFLHFCQUFZLElBQTJCO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDSCxrQkFBQztBQUFELENBQUMsQUFSRCxJQVFDO0FBUlksa0NBQVcifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvSW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7SUFLRSxxQkFBWSxJQUEyQjtRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBUkQsSUFRQztBQVJZLGtDQUFXIn0=
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserAccount = void 0;
3
4
  var UserAccount = (function () {
4
5
  function UserAccount(init) {
5
6
  Object.assign(this, init);
@@ -7,4 +8,4 @@ var UserAccount = (function () {
7
8
  return UserAccount;
8
9
  }());
9
10
  exports.UserAccount = UserAccount;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvVXNlckFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTtJQWlCRSxxQkFBWSxJQUEyQjtRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLGtDQUFXIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvVXNlckFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7SUFpQkUscUJBQVksSUFBMkI7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQXBCRCxJQW9CQztBQXBCWSxrQ0FBVyJ9
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "feature-toggle-client",
3
- "version": "1.7.0",
3
+ "version": "2.1.0",
4
4
  "description": "feature-toggle-client",
5
5
  "license": "MIT",
6
6
  "repository": "",
7
7
  "author": {
8
- "name": "Samuel Martins",
9
- "email": "samuels@take.net",
10
- "url": "https://blip.ai"
8
+ "name": "Blip Platform team",
9
+ "url": "https://blip.ai/"
11
10
  },
12
11
  "keywords": [
13
- ""
12
+ "launchdarkly",
13
+ "feature toggle",
14
+ "blip"
14
15
  ],
15
16
  "files": [
16
17
  "dist"
@@ -34,29 +35,30 @@
34
35
  "start": "node ./src/main.js"
35
36
  },
36
37
  "dependencies": {
37
- "axios": "^0.21.1",
38
- "launchdarkly-js-client-sdk": "^2.11.0",
38
+ "axios": "^0.21.4",
39
+ "launchdarkly-js-client-sdk": "^3.9.0",
39
40
  "uuid": "^3.3.2"
40
41
  },
41
42
  "devDependencies": {
42
43
  "@types/jest": "^22.0.1",
43
- "@types/node": "^8.0.0",
44
- "commitizen": "^2.10.1",
44
+ "@types/node": "^18.0.1",
45
+ "commitizen": "^4.2.4",
45
46
  "coveralls": "^3.0.2",
46
47
  "cz-conventional-changelog": "^2.1.0",
47
48
  "cz-customizable": "5.3.0",
48
49
  "cz-customizable-ghooks": "1.5.0",
49
50
  "ghooks": "^2.0.4",
50
- "jest": "^22.0.4",
51
+ "jest": "^28.1.2",
52
+ "jest-environment-jsdom": "^28.1.2",
51
53
  "mock-fs": "^4.7.0",
52
54
  "prettier": "^1.5.2",
53
55
  "rimraf": "^2.0.0",
54
- "semantic-release": "^15.9.15",
55
- "ts-jest": "^22.0.1",
56
- "ts-node": "^3.2.0",
57
- "tslint": "^5.0.0",
56
+ "semantic-release": "^19.0.3",
57
+ "ts-jest": "^28.0.5",
58
+ "ts-node-dev": "^2.0.0",
59
+ "tslint": "^6.1.3",
58
60
  "tslint-config-prettier": "^1.1.0",
59
- "typescript": "^3.0.3"
61
+ "typescript": "^4.7.4"
60
62
  },
61
63
  "engines": {
62
64
  "node": ">=6.0.0"
@@ -85,16 +87,5 @@
85
87
  }
86
88
  ]
87
89
  }
88
- },
89
- "jest": {
90
- "transform": {
91
- ".(ts)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
92
- },
93
- "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|js)$",
94
- "moduleFileExtensions": [
95
- "ts",
96
- "js"
97
- ],
98
- "testURL": "http://localhost/"
99
90
  }
100
91
  }
@@ -1,15 +0,0 @@
1
- import { UserAccount } from './types/UserAccount';
2
- import { IFeatureToggleServiceSettings } from './types/IFeatureToggleServiceSettings';
3
- export declare class FeatureToggleApiService {
4
- private readonly API_URL;
5
- private readonly DEFAULT_COMMENT;
6
- private readonly ADD_USER_TARGETS;
7
- private readonly STATUS_CODE_OK;
8
- private settings;
9
- constructor(settings: IFeatureToggleServiceSettings);
10
- private getApiRequestUrl;
11
- private getApiRequestHeaders;
12
- private getAddUserTargetsDataFormat;
13
- private getVariationId;
14
- addUsersToFeatureToggle(users: UserAccount[], featureKey: string): Promise<boolean>;
15
- }
@@ -1,125 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- var AddUserRequest_1 = require("./types/AddUserRequest");
39
- var Instruction_1 = require("./types/Instruction");
40
- var axios_1 = require("axios");
41
- var FeatureToggleApiService = (function () {
42
- function FeatureToggleApiService(settings) {
43
- this.API_URL = 'https://app.launchdarkly.com/api/v2/flags';
44
- this.DEFAULT_COMMENT = 'modified by feature-toggle-client';
45
- this.ADD_USER_TARGETS = 'addUserTargets';
46
- this.STATUS_CODE_OK = 200;
47
- this.settings = settings;
48
- }
49
- FeatureToggleApiService.prototype.getApiRequestUrl = function (featureKey, ignoreConflicts) {
50
- return this.API_URL + "/" + this.settings.projectKey + "/" + featureKey + "?ignoreConflicts=" + ignoreConflicts;
51
- };
52
- FeatureToggleApiService.prototype.getApiRequestHeaders = function () {
53
- return {
54
- Authorization: this.settings.authorizationToken,
55
- 'Content-Type': 'application/json; domain-model=launchdarkly.semanticpatch'
56
- };
57
- };
58
- FeatureToggleApiService.prototype.getAddUserTargetsDataFormat = function (users, variationId) {
59
- var instructions = [];
60
- instructions.push(new Instruction_1.Instruction({
61
- kind: this.ADD_USER_TARGETS,
62
- values: users.map(function (user) { return user.email; }),
63
- variationId: variationId
64
- }));
65
- var addUserRequest = new AddUserRequest_1.AddUserRequest({
66
- comment: this.DEFAULT_COMMENT,
67
- environmentKey: this.settings.environmentKey,
68
- instructions: instructions
69
- });
70
- return addUserRequest;
71
- };
72
- FeatureToggleApiService.prototype.getVariationId = function (featureKey) {
73
- return __awaiter(this, void 0, void 0, function () {
74
- var url, response, variation;
75
- return __generator(this, function (_a) {
76
- switch (_a.label) {
77
- case 0:
78
- url = this.getApiRequestUrl(featureKey, true);
79
- return [4, axios_1.default.get(url, {
80
- headers: this.getApiRequestHeaders()
81
- })];
82
- case 1:
83
- response = _a.sent();
84
- if (response.status === this.STATUS_CODE_OK) {
85
- variation = response.data.variations.find(function (_a) {
86
- var value = _a.value;
87
- return value === true;
88
- });
89
- return [2, variation._id];
90
- }
91
- throw new Error('Error getting variation id');
92
- }
93
- });
94
- });
95
- };
96
- FeatureToggleApiService.prototype.addUsersToFeatureToggle = function (users, featureKey) {
97
- return __awaiter(this, void 0, void 0, function () {
98
- var variationId, data, url, response, error_1;
99
- return __generator(this, function (_a) {
100
- switch (_a.label) {
101
- case 0:
102
- _a.trys.push([0, 3, , 4]);
103
- return [4, this.getVariationId(featureKey)];
104
- case 1:
105
- variationId = _a.sent();
106
- data = this.getAddUserTargetsDataFormat(users, variationId);
107
- url = this.getApiRequestUrl(featureKey, true);
108
- return [4, axios_1.default.patch(url, data, {
109
- headers: this.getApiRequestHeaders()
110
- })];
111
- case 2:
112
- response = _a.sent();
113
- return [2, response.status === this.STATUS_CODE_OK];
114
- case 3:
115
- error_1 = _a.sent();
116
- return [2, false];
117
- case 4: return [2];
118
- }
119
- });
120
- });
121
- };
122
- return FeatureToggleApiService;
123
- }());
124
- exports.FeatureToggleApiService = FeatureToggleApiService;
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVRvZ2dsZUFwaVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRmVhdHVyZVRvZ2dsZUFwaVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF3RDtBQUd4RCxtREFBa0Q7QUFDbEQsK0JBQTBCO0FBRTFCO0lBT0UsaUNBQVksUUFBdUM7UUFObEMsWUFBTyxHQUFHLDJDQUEyQyxDQUFDO1FBQ3RELG9CQUFlLEdBQUcsbUNBQW1DLENBQUM7UUFDdEQscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDcEMsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFJcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVPLGtEQUFnQixHQUF4QixVQUNFLFVBQWtCLEVBQ2xCLGVBQXdCO1FBRXhCLE9BQVUsSUFBSSxDQUFDLE9BQU8sU0FDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLFNBQ3RCLFVBQVUseUJBQW9CLGVBQWlCLENBQUM7SUFDdEQsQ0FBQztJQUVPLHNEQUFvQixHQUE1QjtRQUNFLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0I7WUFDL0MsY0FBYyxFQUNaLDJEQUEyRDtTQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUVPLDZEQUEyQixHQUFuQyxVQUFvQyxLQUFvQixFQUFFLFdBQW1CO1FBQzNFLElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLElBQUkseUJBQVcsQ0FBQztZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUMzQixNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxLQUFLLEVBQVYsQ0FBVSxDQUFDO1lBQ3JDLFdBQVcsYUFBQTtTQUNaLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBTSxjQUFjLEdBQUcsSUFBSSwrQkFBYyxDQUFDO1lBQ3hDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZTtZQUM3QixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjO1lBQzVDLFlBQVksY0FBQTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFYSxnREFBYyxHQUE1QixVQUE2QixVQUFrQjs7Ozs7O3dCQUN2QyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDbkMsV0FBTSxlQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQ0FDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRTs2QkFDckMsQ0FBQyxFQUFBOzt3QkFGSSxRQUFRLEdBQUcsU0FFZjt3QkFDRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRTs0QkFDckMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFDLEVBQVM7b0NBQVAsZ0JBQUs7Z0NBQ3RELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQzs0QkFDeEIsQ0FBQyxDQUFDLENBQUM7NEJBQ0gsV0FBTyxTQUFTLENBQUMsR0FBRyxFQUFDO3lCQUN0Qjt3QkFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Ozs7S0FDL0M7SUFPWSx5REFBdUIsR0FBcEMsVUFDRSxLQUFvQixFQUNwQixVQUFrQjs7Ozs7Ozt3QkFHSSxXQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUE7O3dCQUFuRCxXQUFXLEdBQUcsU0FBcUM7d0JBRW5ELElBQUksR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO3dCQUU1RCxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFFbkMsV0FBTSxlQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7Z0NBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7NkJBQ3JDLENBQUMsRUFBQTs7d0JBRkksUUFBUSxHQUFHLFNBRWY7d0JBRUYsV0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUM7Ozt3QkFFL0MsV0FBTyxLQUFLLEVBQUM7Ozs7O0tBRWhCO0lBQ0gsOEJBQUM7QUFBRCxDQUFDLEFBcEZELElBb0ZDO0FBcEZZLDBEQUF1QiJ9
@@ -1,5 +0,0 @@
1
- export interface IFeatureToggleServiceSettings {
2
- projectKey: string;
3
- environmentKey: string;
4
- authorizationToken: string;
5
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUZlYXR1cmVUb2dnbGVTZXJ2aWNlU2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvSUZlYXR1cmVUb2dnbGVTZXJ2aWNlU2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9