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.
- package/dist/ClassFeaturesExample.js +4 -2
- package/dist/FeatureToggleClientService.d.ts +9 -7
- package/dist/FeatureToggleClientService.js +53 -28
- package/dist/FeatureToggleInstanceFactory.d.ts +5 -2
- package/dist/FeatureToggleInstanceFactory.js +73 -30
- package/dist/index.d.ts +4 -1
- package/dist/index.js +11 -2
- package/dist/types/AddUserRequest.js +2 -1
- package/dist/types/Application.d.ts +13 -12
- package/dist/types/Application.js +2 -1
- package/dist/types/Contract.d.ts +6 -0
- package/dist/types/Contract.js +11 -0
- package/dist/types/Instruction.js +2 -1
- package/dist/types/UserAccount.js +2 -1
- package/package.json +17 -26
- package/dist/FeatureToggleApiService.d.ts +0 -15
- package/dist/FeatureToggleApiService.js +0 -125
- package/dist/types/IFeatureToggleServiceSettings.d.ts +0 -5
- package/dist/types/IFeatureToggleServiceSettings.js +0 -3
|
@@ -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) :
|
|
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,
|
|
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 {
|
|
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
|
|
9
|
+
private multiContextInstance?;
|
|
11
10
|
private requestTimeout;
|
|
12
11
|
private constructor();
|
|
13
12
|
getUserInstance(): LDClient;
|
|
14
13
|
getApplicationInstance(): LDClient;
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) :
|
|
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.
|
|
55
|
-
return this.
|
|
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 =
|
|
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 =
|
|
72
|
+
this.applicationInstance = FeatureToggleInstanceFactory_1.FeatureToggleInstanceFactory
|
|
73
|
+
.createSingleContext(payload, ldclientSdkKey, options)
|
|
74
|
+
.getClient();
|
|
70
75
|
};
|
|
71
|
-
FeatureToggleClientService.prototype.
|
|
72
|
-
this.
|
|
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,
|
|
88
|
-
return [
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
|
105
|
+
case 4:
|
|
96
106
|
e_1 = _b.sent();
|
|
97
107
|
throw e_1;
|
|
98
|
-
case
|
|
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.
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
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,
|
|
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(
|
|
8
|
+
private constructor();
|
|
8
9
|
getClient(): LDClient;
|
|
9
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
39
|
-
? __assign({
|
|
40
|
-
|
|
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(
|
|
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,
|
|
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.
|
|
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,
|
|
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 {
|
|
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
|
|
5
|
-
|
|
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,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlclJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQWRkVXNlclJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7SUFLRSx3QkFBWSxJQUE4QjtRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBUkQsSUFRQztBQVJZLHdDQUFjIn0=
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
export declare class Application {
|
|
2
|
-
imageUri
|
|
3
|
-
id
|
|
2
|
+
imageUri?: string;
|
|
3
|
+
id?: number;
|
|
4
4
|
shortName: string;
|
|
5
|
-
name
|
|
6
|
-
accessKey
|
|
7
|
-
template
|
|
8
|
-
created
|
|
9
|
-
activatedServices
|
|
10
|
-
applicationUserPermissionModel
|
|
11
|
-
applicationDomainActivations
|
|
12
|
-
isTemplate
|
|
13
|
-
status
|
|
14
|
-
|
|
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,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7SUFnQkUscUJBQVksSUFBMkI7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQW5CRCxJQW1CQztBQW5CWSxrQ0FBVyJ9
|
|
@@ -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,
|
|
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,
|
|
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.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "feature-toggle-client",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "",
|
|
7
7
|
"author": {
|
|
8
|
-
"name": "
|
|
9
|
-
"
|
|
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.
|
|
38
|
-
"launchdarkly-js-client-sdk": "^
|
|
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": "^
|
|
44
|
-
"commitizen": "^2.
|
|
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": "^
|
|
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": "^
|
|
55
|
-
"ts-jest": "^
|
|
56
|
-
"ts-node": "^
|
|
57
|
-
"tslint": "^
|
|
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": "^
|
|
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,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUZlYXR1cmVUb2dnbGVTZXJ2aWNlU2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvSUZlYXR1cmVUb2dnbGVTZXJ2aWNlU2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|