@flopflip/launchdarkly-adapter 5.0.30 → 5.0.32
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.
|
@@ -30,37 +30,22 @@ var warning__default = /*#__PURE__*/_interopDefault(warning);
|
|
|
30
30
|
var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
31
31
|
|
|
32
32
|
var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
|
|
33
|
-
|
|
34
33
|
var _updateFlagsInAdapterState = /*#__PURE__*/_classPrivateFieldLooseKey("updateFlagsInAdapterState");
|
|
35
|
-
|
|
36
34
|
var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
|
|
37
|
-
|
|
38
35
|
var _getIsFlagUnsubcribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagUnsubcribed");
|
|
39
|
-
|
|
40
36
|
var _getIsFlagLocked = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagLocked");
|
|
41
|
-
|
|
42
37
|
var _withoutUnsubscribedOrLockedFlags = /*#__PURE__*/_classPrivateFieldLooseKey("withoutUnsubscribedOrLockedFlags");
|
|
43
|
-
|
|
44
38
|
var _getIsAnonymousUser = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAnonymousUser");
|
|
45
|
-
|
|
46
39
|
var _ensureUser = /*#__PURE__*/_classPrivateFieldLooseKey("ensureUser");
|
|
47
|
-
|
|
48
40
|
var _initializeClient = /*#__PURE__*/_classPrivateFieldLooseKey("initializeClient");
|
|
49
|
-
|
|
50
41
|
var _changeUserContext = /*#__PURE__*/_classPrivateFieldLooseKey("changeUserContext");
|
|
51
|
-
|
|
52
42
|
var _getInitialFlags = /*#__PURE__*/_classPrivateFieldLooseKey("getInitialFlags");
|
|
53
|
-
|
|
54
43
|
var _didFlagChange = /*#__PURE__*/_classPrivateFieldLooseKey("didFlagChange");
|
|
55
|
-
|
|
56
44
|
var _setupFlagSubcription = /*#__PURE__*/_classPrivateFieldLooseKey("setupFlagSubcription");
|
|
57
|
-
|
|
58
45
|
var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
59
46
|
function LaunchDarklyAdapter() {
|
|
60
47
|
var _this = this;
|
|
61
|
-
|
|
62
48
|
_classCallCheck(this, LaunchDarklyAdapter);
|
|
63
|
-
|
|
64
49
|
Object.defineProperty(this, _adapterState, {
|
|
65
50
|
writable: true,
|
|
66
51
|
value: void 0
|
|
@@ -71,19 +56,15 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
71
56
|
value: function value(flags, options) {
|
|
72
57
|
var updatedFlags = Object.entries(flags).reduce(function (updatedFlags, _ref) {
|
|
73
58
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
59
|
+
flagName = _ref2[0],
|
|
60
|
+
flagValue = _ref2[1];
|
|
77
61
|
if (_classPrivateFieldLooseBase(_this, _getIsFlagLocked)[_getIsFlagLocked](flagName)) return updatedFlags;
|
|
78
|
-
|
|
79
62
|
if (options !== null && options !== void 0 && options.lockFlags) {
|
|
80
63
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].lockedFlags.add(flagName);
|
|
81
64
|
}
|
|
82
|
-
|
|
83
65
|
if (options !== null && options !== void 0 && options.unsubscribeFlags) {
|
|
84
66
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].unsubscribedFlags.add(flagName);
|
|
85
67
|
}
|
|
86
|
-
|
|
87
68
|
updatedFlags = _objectSpread(_objectSpread({}, updatedFlags), {}, _defineProperty({}, flagName, flagValue));
|
|
88
69
|
return updatedFlags;
|
|
89
70
|
}, {});
|
|
@@ -113,8 +94,7 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
113
94
|
value: function value(flags) {
|
|
114
95
|
return Object.fromEntries(Object.entries(flags).filter(function (_ref3) {
|
|
115
96
|
var _ref4 = _slicedToArray(_ref3, 1),
|
|
116
|
-
|
|
117
|
-
|
|
97
|
+
flagName = _ref4[0];
|
|
118
98
|
return !_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](flagName) && !_classPrivateFieldLooseBase(_this, _getIsFlagLocked)[_getIsFlagLocked](flagName);
|
|
119
99
|
}));
|
|
120
100
|
}
|
|
@@ -128,9 +108,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
128
108
|
Object.defineProperty(this, _ensureUser, {
|
|
129
109
|
writable: true,
|
|
130
110
|
value: function value(user) {
|
|
131
|
-
var isAnonymousUser = _classPrivateFieldLooseBase(_this, _getIsAnonymousUser)[_getIsAnonymousUser](user);
|
|
132
|
-
|
|
111
|
+
var isAnonymousUser = _classPrivateFieldLooseBase(_this, _getIsAnonymousUser)[_getIsAnonymousUser](user);
|
|
133
112
|
|
|
113
|
+
// NOTE: When marked `anonymous` the SDK will generate a unique key and cache it in local storage
|
|
134
114
|
return merge__default["default"](user, {
|
|
135
115
|
key: isAnonymousUser ? undefined : user.key,
|
|
136
116
|
anonymous: isAnonymousUser
|
|
@@ -148,13 +128,11 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
148
128
|
value: function () {
|
|
149
129
|
var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(nextUser) {
|
|
150
130
|
var _classPrivateFieldLoo;
|
|
151
|
-
|
|
152
131
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
153
132
|
while (1) {
|
|
154
133
|
switch (_context.prev = _context.next) {
|
|
155
134
|
case 0:
|
|
156
135
|
return _context.abrupt("return", (_classPrivateFieldLoo = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) !== null && _classPrivateFieldLoo !== void 0 && _classPrivateFieldLoo.identify ? _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.identify(nextUser) : Promise.reject(new Error('Can not change user context: client not yet initialized.')));
|
|
157
|
-
|
|
158
136
|
case 1:
|
|
159
137
|
case "end":
|
|
160
138
|
return _context.stop();
|
|
@@ -162,11 +140,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
162
140
|
}
|
|
163
141
|
}, _callee);
|
|
164
142
|
}));
|
|
165
|
-
|
|
166
143
|
function value(_x) {
|
|
167
144
|
return _value.apply(this, arguments);
|
|
168
145
|
}
|
|
169
|
-
|
|
170
146
|
return value;
|
|
171
147
|
}()
|
|
172
148
|
});
|
|
@@ -180,15 +156,12 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
180
156
|
switch (_context4.prev = _context4.next) {
|
|
181
157
|
case 0:
|
|
182
158
|
flags = _ref5.flags, throwOnInitializationFailure = _ref5.throwOnInitializationFailure;
|
|
183
|
-
|
|
184
159
|
if (!_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) {
|
|
185
160
|
_context4.next = 3;
|
|
186
161
|
break;
|
|
187
162
|
}
|
|
188
|
-
|
|
189
163
|
return _context4.abrupt("return", _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.waitForInitialization().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
|
|
190
164
|
var flagsFromSdk, _i, _Object$entries, _ref9, _ref8, requestedFlagName, defaultFlagValue, denormalizedRequestedFlagName, normalizedFlags, _flags;
|
|
191
|
-
|
|
192
165
|
return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
|
|
193
166
|
while (1) {
|
|
194
167
|
switch (_context2.prev = _context2.next) {
|
|
@@ -197,7 +170,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
197
170
|
flagsFromSdk = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.allFlags();
|
|
198
171
|
} else if (_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client && flags) {
|
|
199
172
|
flagsFromSdk = {};
|
|
200
|
-
|
|
201
173
|
for (_i = 0, _Object$entries = Object.entries(flags); _i < _Object$entries.length; _i++) {
|
|
202
174
|
_ref9 = _Object$entries[_i];
|
|
203
175
|
_ref8 = _slicedToArray(_ref9, 2);
|
|
@@ -207,21 +179,16 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
207
179
|
flagsFromSdk[denormalizedRequestedFlagName] = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.variation(denormalizedRequestedFlagName, defaultFlagValue);
|
|
208
180
|
}
|
|
209
181
|
}
|
|
210
|
-
|
|
211
182
|
if (flagsFromSdk) {
|
|
212
183
|
normalizedFlags = adapterUtilities.normalizeFlags(flagsFromSdk);
|
|
213
184
|
_flags = _classPrivateFieldLooseBase(_this, _withoutUnsubscribedOrLockedFlags)[_withoutUnsubscribedOrLockedFlags](normalizedFlags);
|
|
214
|
-
|
|
215
185
|
_this.updateFlags(_flags);
|
|
216
186
|
}
|
|
217
|
-
|
|
218
187
|
_this.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
|
|
219
|
-
|
|
220
188
|
return _context2.abrupt("return", Promise.resolve({
|
|
221
189
|
flagsFromSdk: flagsFromSdk,
|
|
222
190
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
223
191
|
}));
|
|
224
|
-
|
|
225
192
|
case 4:
|
|
226
193
|
case "end":
|
|
227
194
|
return _context2.stop();
|
|
@@ -237,16 +204,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
237
204
|
_context3.next = 2;
|
|
238
205
|
break;
|
|
239
206
|
}
|
|
240
|
-
|
|
241
207
|
return _context3.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: adapter failed to initialize.')));
|
|
242
|
-
|
|
243
208
|
case 2:
|
|
244
209
|
console.warn('@flopflip/launchdarkly-adapter: adapter failed to initialize.');
|
|
245
210
|
return _context3.abrupt("return", Promise.resolve({
|
|
246
211
|
flagsFromSdk: undefined,
|
|
247
212
|
initializationStatus: types.AdapterInitializationStatus.Failed
|
|
248
213
|
}));
|
|
249
|
-
|
|
250
214
|
case 4:
|
|
251
215
|
case "end":
|
|
252
216
|
return _context3.stop();
|
|
@@ -254,10 +218,8 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
254
218
|
}
|
|
255
219
|
}, _callee3);
|
|
256
220
|
}))));
|
|
257
|
-
|
|
258
221
|
case 3:
|
|
259
222
|
return _context4.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: can not subscribe with non initialized client.')));
|
|
260
|
-
|
|
261
223
|
case 4:
|
|
262
224
|
case "end":
|
|
263
225
|
return _context4.stop();
|
|
@@ -265,11 +227,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
265
227
|
}
|
|
266
228
|
}, _callee4);
|
|
267
229
|
}));
|
|
268
|
-
|
|
269
230
|
function value(_x2) {
|
|
270
231
|
return _value2.apply(this, arguments);
|
|
271
232
|
}
|
|
272
|
-
|
|
273
233
|
return value;
|
|
274
234
|
}()
|
|
275
235
|
});
|
|
@@ -277,7 +237,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
277
237
|
writable: true,
|
|
278
238
|
value: function value(flagName, nextFlagValue) {
|
|
279
239
|
var previousFlagValue = _this.getFlag(flagName);
|
|
280
|
-
|
|
281
240
|
if (previousFlagValue === undefined) return true;
|
|
282
241
|
return previousFlagValue !== nextFlagValue;
|
|
283
242
|
}
|
|
@@ -286,31 +245,27 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
286
245
|
writable: true,
|
|
287
246
|
value: function value(_ref11) {
|
|
288
247
|
var flagsFromSdk = _ref11.flagsFromSdk,
|
|
289
|
-
|
|
290
|
-
|
|
248
|
+
flagsUpdateDelayMs = _ref11.flagsUpdateDelayMs;
|
|
291
249
|
var _loop = function _loop(flagName) {
|
|
292
250
|
// Dispatch whenever a configured flag value changes
|
|
293
251
|
if (Object.prototype.hasOwnProperty.call(flagsFromSdk, flagName) && _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) {
|
|
294
252
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.on("change:".concat(flagName), function (flagValue) {
|
|
295
253
|
var _normalizeFlag = adapterUtilities.normalizeFlag(flagName, flagValue),
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](normalizedFlagName)) return; // Sometimes the SDK flushes flag changes without a value having changed.
|
|
254
|
+
_normalizeFlag2 = _slicedToArray(_normalizeFlag, 2),
|
|
255
|
+
normalizedFlagName = _normalizeFlag2[0],
|
|
256
|
+
normalizedFlagValue = _normalizeFlag2[1];
|
|
257
|
+
if (_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](normalizedFlagName)) return;
|
|
301
258
|
|
|
259
|
+
// Sometimes the SDK flushes flag changes without a value having changed.
|
|
302
260
|
if (!_classPrivateFieldLooseBase(_this, _didFlagChange)[_didFlagChange](normalizedFlagName, normalizedFlagValue)) return;
|
|
261
|
+
var updatedFlags = _defineProperty({}, normalizedFlagName, normalizedFlagValue);
|
|
303
262
|
|
|
304
|
-
|
|
263
|
+
// NOTE: Adapter state needs to be updated outside of debounced-fn
|
|
305
264
|
// so that no flag updates are lost.
|
|
306
|
-
|
|
307
|
-
|
|
308
265
|
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](updatedFlags);
|
|
309
|
-
|
|
310
266
|
var flushFlagsUpdate = function flushFlagsUpdate() {
|
|
311
267
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags);
|
|
312
268
|
};
|
|
313
|
-
|
|
314
269
|
var scheduleImmediately = {
|
|
315
270
|
before: true,
|
|
316
271
|
after: false
|
|
@@ -325,28 +280,23 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
325
280
|
});
|
|
326
281
|
}
|
|
327
282
|
};
|
|
328
|
-
|
|
329
283
|
for (var flagName in flagsFromSdk) {
|
|
330
284
|
_loop(flagName);
|
|
331
285
|
}
|
|
332
286
|
}
|
|
333
287
|
});
|
|
334
|
-
|
|
335
288
|
this.updateFlags = function (flags, options) {
|
|
336
|
-
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags, options);
|
|
337
|
-
|
|
289
|
+
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags, options);
|
|
338
290
|
|
|
291
|
+
// ...and flush initial state of flags
|
|
339
292
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags);
|
|
340
293
|
};
|
|
341
|
-
|
|
342
294
|
this.unsubscribe = function () {
|
|
343
295
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Unsubscribed;
|
|
344
296
|
};
|
|
345
|
-
|
|
346
297
|
this.subscribe = function () {
|
|
347
298
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Subscribed;
|
|
348
299
|
};
|
|
349
|
-
|
|
350
300
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState] = {
|
|
351
301
|
subscriptionStatus: types.AdapterSubscriptionStatus.Subscribed,
|
|
352
302
|
configurationStatus: types.AdapterConfigurationStatus.Unconfigured,
|
|
@@ -361,16 +311,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
361
311
|
};
|
|
362
312
|
this.id = types.adapterIdentifiers.launchdarkly;
|
|
363
313
|
}
|
|
364
|
-
|
|
365
314
|
_createClass(LaunchDarklyAdapter, [{
|
|
366
315
|
key: "configure",
|
|
367
316
|
value: function () {
|
|
368
317
|
var _configure = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(adapterArgs, adapterEventHandlers) {
|
|
369
318
|
var _this2 = this,
|
|
370
|
-
|
|
371
|
-
|
|
319
|
+
_sdk$clientOptions;
|
|
372
320
|
var handleFlagsChange, handleStatusChange, sdk, user, flags, _adapterArgs$subscrib, subscribeToFlagChanges, _adapterArgs$throwOnI, throwOnInitializationFailure, flagsUpdateDelayMs;
|
|
373
|
-
|
|
374
321
|
return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
|
|
375
322
|
while (1) {
|
|
376
323
|
switch (_context5.prev = _context5.next) {
|
|
@@ -382,7 +329,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
382
329
|
id: _this2.id
|
|
383
330
|
});
|
|
384
331
|
};
|
|
385
|
-
|
|
386
332
|
handleStatusChange = function handleStatusChange(nextStatus) {
|
|
387
333
|
if (_classPrivateFieldLooseBase(_this2, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) return;
|
|
388
334
|
adapterEventHandlers.onStatusStateChange({
|
|
@@ -390,17 +336,12 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
390
336
|
id: _this2.id
|
|
391
337
|
});
|
|
392
338
|
};
|
|
393
|
-
|
|
394
339
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = types.AdapterConfigurationStatus.Configuring;
|
|
395
|
-
|
|
396
340
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('flagsStateChange', handleFlagsChange);
|
|
397
|
-
|
|
398
341
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('statusStateChange', handleStatusChange);
|
|
399
|
-
|
|
400
342
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
|
|
401
343
|
configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
|
|
402
344
|
});
|
|
403
|
-
|
|
404
345
|
sdk = adapterArgs.sdk, user = adapterArgs.user, flags = adapterArgs.flags, _adapterArgs$subscrib = adapterArgs.subscribeToFlagChanges, subscribeToFlagChanges = _adapterArgs$subscrib === void 0 ? true : _adapterArgs$subscrib, _adapterArgs$throwOnI = adapterArgs.throwOnInitializationFailure, throwOnInitializationFailure = _adapterArgs$throwOnI === void 0 ? false : _adapterArgs$throwOnI, flagsUpdateDelayMs = adapterArgs.flagsUpdateDelayMs;
|
|
405
346
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = _classPrivateFieldLooseBase(this, _ensureUser)[_ensureUser](user);
|
|
406
347
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client = _classPrivateFieldLooseBase(this, _initializeClient)[_initializeClient](sdk.clientSideId, _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, (_sdk$clientOptions = sdk.clientOptions) !== null && _sdk$clientOptions !== void 0 ? _sdk$clientOptions : {});
|
|
@@ -409,7 +350,7 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
409
350
|
throwOnInitializationFailure: throwOnInitializationFailure
|
|
410
351
|
}).then(function (_ref12) {
|
|
411
352
|
var flagsFromSdk = _ref12.flagsFromSdk,
|
|
412
|
-
|
|
353
|
+
initializationStatus = _ref12.initializationStatus;
|
|
413
354
|
if (subscribeToFlagChanges && flagsFromSdk) _classPrivateFieldLooseBase(_this2, _setupFlagSubcription)[_setupFlagSubcription]({
|
|
414
355
|
flagsFromSdk: flagsFromSdk,
|
|
415
356
|
flagsUpdateDelayMs: flagsUpdateDelayMs
|
|
@@ -418,7 +359,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
418
359
|
initializationStatus: initializationStatus
|
|
419
360
|
};
|
|
420
361
|
}));
|
|
421
|
-
|
|
422
362
|
case 10:
|
|
423
363
|
case "end":
|
|
424
364
|
return _context5.stop();
|
|
@@ -426,11 +366,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
426
366
|
}
|
|
427
367
|
}, _callee5, this);
|
|
428
368
|
}));
|
|
429
|
-
|
|
430
369
|
function configure(_x3, _x4) {
|
|
431
370
|
return _configure.apply(this, arguments);
|
|
432
371
|
}
|
|
433
|
-
|
|
434
372
|
return configure;
|
|
435
373
|
}()
|
|
436
374
|
}, {
|
|
@@ -446,31 +384,24 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
446
384
|
_context6.next = 2;
|
|
447
385
|
break;
|
|
448
386
|
}
|
|
449
|
-
|
|
450
387
|
return _context6.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: please configure adapter before reconfiguring.')));
|
|
451
|
-
|
|
452
388
|
case 2:
|
|
453
389
|
nextUser = adapterArgs.user;
|
|
454
|
-
|
|
455
390
|
if (isEqual__default["default"](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, nextUser)) {
|
|
456
391
|
_context6.next = 8;
|
|
457
392
|
break;
|
|
458
393
|
}
|
|
459
|
-
|
|
460
394
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = _classPrivateFieldLooseBase(this, _ensureUser)[_ensureUser](nextUser);
|
|
461
395
|
_context6.next = 7;
|
|
462
396
|
return _classPrivateFieldLooseBase(this, _changeUserContext)[_changeUserContext](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user);
|
|
463
|
-
|
|
464
397
|
case 7:
|
|
465
398
|
return _context6.abrupt("return", Promise.resolve({
|
|
466
399
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
467
400
|
}));
|
|
468
|
-
|
|
469
401
|
case 8:
|
|
470
402
|
return _context6.abrupt("return", Promise.resolve({
|
|
471
403
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
472
404
|
}));
|
|
473
|
-
|
|
474
405
|
case 9:
|
|
475
406
|
case "end":
|
|
476
407
|
return _context6.stop();
|
|
@@ -478,11 +409,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
478
409
|
}
|
|
479
410
|
}, _callee6, this);
|
|
480
411
|
}));
|
|
481
|
-
|
|
482
412
|
function reconfigure(_x5, _x6) {
|
|
483
413
|
return _reconfigure.apply(this, arguments);
|
|
484
414
|
}
|
|
485
|
-
|
|
486
415
|
return reconfigure;
|
|
487
416
|
}()
|
|
488
417
|
}, {
|
|
@@ -494,7 +423,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
494
423
|
key: "setConfigurationStatus",
|
|
495
424
|
value: function setConfigurationStatus(nextConfigurationStatus) {
|
|
496
425
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
|
|
497
|
-
|
|
498
426
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
|
|
499
427
|
configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
|
|
500
428
|
});
|
|
@@ -520,17 +448,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
520
448
|
case 0:
|
|
521
449
|
isAdapterConfigured = this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured);
|
|
522
450
|
warning__default["default"](isAdapterConfigured, '@flopflip/launchdarkly-adapter: adapter not configured. User context can not be updated before.');
|
|
523
|
-
|
|
524
451
|
if (isAdapterConfigured) {
|
|
525
452
|
_context7.next = 4;
|
|
526
453
|
break;
|
|
527
454
|
}
|
|
528
|
-
|
|
529
455
|
return _context7.abrupt("return", Promise.reject(new Error('Can not update user context: adapter not yet configured.')));
|
|
530
|
-
|
|
531
456
|
case 4:
|
|
532
457
|
return _context7.abrupt("return", _classPrivateFieldLooseBase(this, _changeUserContext)[_changeUserContext](_objectSpread(_objectSpread({}, _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user), updatedUserProps)));
|
|
533
|
-
|
|
534
458
|
case 5:
|
|
535
459
|
case "end":
|
|
536
460
|
return _context7.stop();
|
|
@@ -538,22 +462,18 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
538
462
|
}
|
|
539
463
|
}, _callee7, this);
|
|
540
464
|
}));
|
|
541
|
-
|
|
542
465
|
function updateUserContext(_x7) {
|
|
543
466
|
return _updateUserContext.apply(this, arguments);
|
|
544
467
|
}
|
|
545
|
-
|
|
546
468
|
return updateUserContext;
|
|
547
469
|
}()
|
|
548
470
|
}]);
|
|
549
|
-
|
|
550
471
|
return LaunchDarklyAdapter;
|
|
551
472
|
}();
|
|
552
|
-
|
|
553
473
|
var adapter = new LaunchDarklyAdapter();
|
|
554
474
|
adapterUtilities.exposeGlobally(adapter);
|
|
555
475
|
|
|
556
|
-
var version = "5.0.
|
|
476
|
+
var version = "5.0.32";
|
|
557
477
|
|
|
558
478
|
exports["default"] = adapter;
|
|
559
479
|
exports.version = version;
|
|
@@ -30,37 +30,22 @@ var warning__default = /*#__PURE__*/_interopDefault(warning);
|
|
|
30
30
|
var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
31
31
|
|
|
32
32
|
var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
|
|
33
|
-
|
|
34
33
|
var _updateFlagsInAdapterState = /*#__PURE__*/_classPrivateFieldLooseKey("updateFlagsInAdapterState");
|
|
35
|
-
|
|
36
34
|
var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
|
|
37
|
-
|
|
38
35
|
var _getIsFlagUnsubcribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagUnsubcribed");
|
|
39
|
-
|
|
40
36
|
var _getIsFlagLocked = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagLocked");
|
|
41
|
-
|
|
42
37
|
var _withoutUnsubscribedOrLockedFlags = /*#__PURE__*/_classPrivateFieldLooseKey("withoutUnsubscribedOrLockedFlags");
|
|
43
|
-
|
|
44
38
|
var _getIsAnonymousUser = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAnonymousUser");
|
|
45
|
-
|
|
46
39
|
var _ensureUser = /*#__PURE__*/_classPrivateFieldLooseKey("ensureUser");
|
|
47
|
-
|
|
48
40
|
var _initializeClient = /*#__PURE__*/_classPrivateFieldLooseKey("initializeClient");
|
|
49
|
-
|
|
50
41
|
var _changeUserContext = /*#__PURE__*/_classPrivateFieldLooseKey("changeUserContext");
|
|
51
|
-
|
|
52
42
|
var _getInitialFlags = /*#__PURE__*/_classPrivateFieldLooseKey("getInitialFlags");
|
|
53
|
-
|
|
54
43
|
var _didFlagChange = /*#__PURE__*/_classPrivateFieldLooseKey("didFlagChange");
|
|
55
|
-
|
|
56
44
|
var _setupFlagSubcription = /*#__PURE__*/_classPrivateFieldLooseKey("setupFlagSubcription");
|
|
57
|
-
|
|
58
45
|
var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
59
46
|
function LaunchDarklyAdapter() {
|
|
60
47
|
var _this = this;
|
|
61
|
-
|
|
62
48
|
_classCallCheck(this, LaunchDarklyAdapter);
|
|
63
|
-
|
|
64
49
|
Object.defineProperty(this, _adapterState, {
|
|
65
50
|
writable: true,
|
|
66
51
|
value: void 0
|
|
@@ -71,19 +56,15 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
71
56
|
value: function value(flags, options) {
|
|
72
57
|
var updatedFlags = Object.entries(flags).reduce(function (updatedFlags, _ref) {
|
|
73
58
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
59
|
+
flagName = _ref2[0],
|
|
60
|
+
flagValue = _ref2[1];
|
|
77
61
|
if (_classPrivateFieldLooseBase(_this, _getIsFlagLocked)[_getIsFlagLocked](flagName)) return updatedFlags;
|
|
78
|
-
|
|
79
62
|
if (options !== null && options !== void 0 && options.lockFlags) {
|
|
80
63
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].lockedFlags.add(flagName);
|
|
81
64
|
}
|
|
82
|
-
|
|
83
65
|
if (options !== null && options !== void 0 && options.unsubscribeFlags) {
|
|
84
66
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].unsubscribedFlags.add(flagName);
|
|
85
67
|
}
|
|
86
|
-
|
|
87
68
|
updatedFlags = _objectSpread(_objectSpread({}, updatedFlags), {}, _defineProperty({}, flagName, flagValue));
|
|
88
69
|
return updatedFlags;
|
|
89
70
|
}, {});
|
|
@@ -113,8 +94,7 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
113
94
|
value: function value(flags) {
|
|
114
95
|
return Object.fromEntries(Object.entries(flags).filter(function (_ref3) {
|
|
115
96
|
var _ref4 = _slicedToArray(_ref3, 1),
|
|
116
|
-
|
|
117
|
-
|
|
97
|
+
flagName = _ref4[0];
|
|
118
98
|
return !_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](flagName) && !_classPrivateFieldLooseBase(_this, _getIsFlagLocked)[_getIsFlagLocked](flagName);
|
|
119
99
|
}));
|
|
120
100
|
}
|
|
@@ -128,9 +108,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
128
108
|
Object.defineProperty(this, _ensureUser, {
|
|
129
109
|
writable: true,
|
|
130
110
|
value: function value(user) {
|
|
131
|
-
var isAnonymousUser = _classPrivateFieldLooseBase(_this, _getIsAnonymousUser)[_getIsAnonymousUser](user);
|
|
132
|
-
|
|
111
|
+
var isAnonymousUser = _classPrivateFieldLooseBase(_this, _getIsAnonymousUser)[_getIsAnonymousUser](user);
|
|
133
112
|
|
|
113
|
+
// NOTE: When marked `anonymous` the SDK will generate a unique key and cache it in local storage
|
|
134
114
|
return merge__default["default"](user, {
|
|
135
115
|
key: isAnonymousUser ? undefined : user.key,
|
|
136
116
|
anonymous: isAnonymousUser
|
|
@@ -148,13 +128,11 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
148
128
|
value: function () {
|
|
149
129
|
var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(nextUser) {
|
|
150
130
|
var _classPrivateFieldLoo;
|
|
151
|
-
|
|
152
131
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
153
132
|
while (1) {
|
|
154
133
|
switch (_context.prev = _context.next) {
|
|
155
134
|
case 0:
|
|
156
135
|
return _context.abrupt("return", (_classPrivateFieldLoo = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) !== null && _classPrivateFieldLoo !== void 0 && _classPrivateFieldLoo.identify ? _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.identify(nextUser) : Promise.reject(new Error('Can not change user context: client not yet initialized.')));
|
|
157
|
-
|
|
158
136
|
case 1:
|
|
159
137
|
case "end":
|
|
160
138
|
return _context.stop();
|
|
@@ -162,11 +140,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
162
140
|
}
|
|
163
141
|
}, _callee);
|
|
164
142
|
}));
|
|
165
|
-
|
|
166
143
|
function value(_x) {
|
|
167
144
|
return _value.apply(this, arguments);
|
|
168
145
|
}
|
|
169
|
-
|
|
170
146
|
return value;
|
|
171
147
|
}()
|
|
172
148
|
});
|
|
@@ -180,15 +156,12 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
180
156
|
switch (_context4.prev = _context4.next) {
|
|
181
157
|
case 0:
|
|
182
158
|
flags = _ref5.flags, throwOnInitializationFailure = _ref5.throwOnInitializationFailure;
|
|
183
|
-
|
|
184
159
|
if (!_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) {
|
|
185
160
|
_context4.next = 3;
|
|
186
161
|
break;
|
|
187
162
|
}
|
|
188
|
-
|
|
189
163
|
return _context4.abrupt("return", _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.waitForInitialization().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
|
|
190
164
|
var flagsFromSdk, _i, _Object$entries, _ref9, _ref8, requestedFlagName, defaultFlagValue, denormalizedRequestedFlagName, normalizedFlags, _flags;
|
|
191
|
-
|
|
192
165
|
return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
|
|
193
166
|
while (1) {
|
|
194
167
|
switch (_context2.prev = _context2.next) {
|
|
@@ -197,7 +170,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
197
170
|
flagsFromSdk = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.allFlags();
|
|
198
171
|
} else if (_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client && flags) {
|
|
199
172
|
flagsFromSdk = {};
|
|
200
|
-
|
|
201
173
|
for (_i = 0, _Object$entries = Object.entries(flags); _i < _Object$entries.length; _i++) {
|
|
202
174
|
_ref9 = _Object$entries[_i];
|
|
203
175
|
_ref8 = _slicedToArray(_ref9, 2);
|
|
@@ -207,21 +179,16 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
207
179
|
flagsFromSdk[denormalizedRequestedFlagName] = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.variation(denormalizedRequestedFlagName, defaultFlagValue);
|
|
208
180
|
}
|
|
209
181
|
}
|
|
210
|
-
|
|
211
182
|
if (flagsFromSdk) {
|
|
212
183
|
normalizedFlags = adapterUtilities.normalizeFlags(flagsFromSdk);
|
|
213
184
|
_flags = _classPrivateFieldLooseBase(_this, _withoutUnsubscribedOrLockedFlags)[_withoutUnsubscribedOrLockedFlags](normalizedFlags);
|
|
214
|
-
|
|
215
185
|
_this.updateFlags(_flags);
|
|
216
186
|
}
|
|
217
|
-
|
|
218
187
|
_this.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
|
|
219
|
-
|
|
220
188
|
return _context2.abrupt("return", Promise.resolve({
|
|
221
189
|
flagsFromSdk: flagsFromSdk,
|
|
222
190
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
223
191
|
}));
|
|
224
|
-
|
|
225
192
|
case 4:
|
|
226
193
|
case "end":
|
|
227
194
|
return _context2.stop();
|
|
@@ -237,16 +204,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
237
204
|
_context3.next = 2;
|
|
238
205
|
break;
|
|
239
206
|
}
|
|
240
|
-
|
|
241
207
|
return _context3.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: adapter failed to initialize.')));
|
|
242
|
-
|
|
243
208
|
case 2:
|
|
244
209
|
console.warn('@flopflip/launchdarkly-adapter: adapter failed to initialize.');
|
|
245
210
|
return _context3.abrupt("return", Promise.resolve({
|
|
246
211
|
flagsFromSdk: undefined,
|
|
247
212
|
initializationStatus: types.AdapterInitializationStatus.Failed
|
|
248
213
|
}));
|
|
249
|
-
|
|
250
214
|
case 4:
|
|
251
215
|
case "end":
|
|
252
216
|
return _context3.stop();
|
|
@@ -254,10 +218,8 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
254
218
|
}
|
|
255
219
|
}, _callee3);
|
|
256
220
|
}))));
|
|
257
|
-
|
|
258
221
|
case 3:
|
|
259
222
|
return _context4.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: can not subscribe with non initialized client.')));
|
|
260
|
-
|
|
261
223
|
case 4:
|
|
262
224
|
case "end":
|
|
263
225
|
return _context4.stop();
|
|
@@ -265,11 +227,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
265
227
|
}
|
|
266
228
|
}, _callee4);
|
|
267
229
|
}));
|
|
268
|
-
|
|
269
230
|
function value(_x2) {
|
|
270
231
|
return _value2.apply(this, arguments);
|
|
271
232
|
}
|
|
272
|
-
|
|
273
233
|
return value;
|
|
274
234
|
}()
|
|
275
235
|
});
|
|
@@ -277,7 +237,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
277
237
|
writable: true,
|
|
278
238
|
value: function value(flagName, nextFlagValue) {
|
|
279
239
|
var previousFlagValue = _this.getFlag(flagName);
|
|
280
|
-
|
|
281
240
|
if (previousFlagValue === undefined) return true;
|
|
282
241
|
return previousFlagValue !== nextFlagValue;
|
|
283
242
|
}
|
|
@@ -286,31 +245,27 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
286
245
|
writable: true,
|
|
287
246
|
value: function value(_ref11) {
|
|
288
247
|
var flagsFromSdk = _ref11.flagsFromSdk,
|
|
289
|
-
|
|
290
|
-
|
|
248
|
+
flagsUpdateDelayMs = _ref11.flagsUpdateDelayMs;
|
|
291
249
|
var _loop = function _loop(flagName) {
|
|
292
250
|
// Dispatch whenever a configured flag value changes
|
|
293
251
|
if (Object.prototype.hasOwnProperty.call(flagsFromSdk, flagName) && _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) {
|
|
294
252
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.on("change:".concat(flagName), function (flagValue) {
|
|
295
253
|
var _normalizeFlag = adapterUtilities.normalizeFlag(flagName, flagValue),
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](normalizedFlagName)) return; // Sometimes the SDK flushes flag changes without a value having changed.
|
|
254
|
+
_normalizeFlag2 = _slicedToArray(_normalizeFlag, 2),
|
|
255
|
+
normalizedFlagName = _normalizeFlag2[0],
|
|
256
|
+
normalizedFlagValue = _normalizeFlag2[1];
|
|
257
|
+
if (_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](normalizedFlagName)) return;
|
|
301
258
|
|
|
259
|
+
// Sometimes the SDK flushes flag changes without a value having changed.
|
|
302
260
|
if (!_classPrivateFieldLooseBase(_this, _didFlagChange)[_didFlagChange](normalizedFlagName, normalizedFlagValue)) return;
|
|
261
|
+
var updatedFlags = _defineProperty({}, normalizedFlagName, normalizedFlagValue);
|
|
303
262
|
|
|
304
|
-
|
|
263
|
+
// NOTE: Adapter state needs to be updated outside of debounced-fn
|
|
305
264
|
// so that no flag updates are lost.
|
|
306
|
-
|
|
307
|
-
|
|
308
265
|
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](updatedFlags);
|
|
309
|
-
|
|
310
266
|
var flushFlagsUpdate = function flushFlagsUpdate() {
|
|
311
267
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags);
|
|
312
268
|
};
|
|
313
|
-
|
|
314
269
|
var scheduleImmediately = {
|
|
315
270
|
before: true,
|
|
316
271
|
after: false
|
|
@@ -325,28 +280,23 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
325
280
|
});
|
|
326
281
|
}
|
|
327
282
|
};
|
|
328
|
-
|
|
329
283
|
for (var flagName in flagsFromSdk) {
|
|
330
284
|
_loop(flagName);
|
|
331
285
|
}
|
|
332
286
|
}
|
|
333
287
|
});
|
|
334
|
-
|
|
335
288
|
this.updateFlags = function (flags, options) {
|
|
336
|
-
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags, options);
|
|
337
|
-
|
|
289
|
+
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags, options);
|
|
338
290
|
|
|
291
|
+
// ...and flush initial state of flags
|
|
339
292
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags);
|
|
340
293
|
};
|
|
341
|
-
|
|
342
294
|
this.unsubscribe = function () {
|
|
343
295
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Unsubscribed;
|
|
344
296
|
};
|
|
345
|
-
|
|
346
297
|
this.subscribe = function () {
|
|
347
298
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Subscribed;
|
|
348
299
|
};
|
|
349
|
-
|
|
350
300
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState] = {
|
|
351
301
|
subscriptionStatus: types.AdapterSubscriptionStatus.Subscribed,
|
|
352
302
|
configurationStatus: types.AdapterConfigurationStatus.Unconfigured,
|
|
@@ -361,16 +311,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
361
311
|
};
|
|
362
312
|
this.id = types.adapterIdentifiers.launchdarkly;
|
|
363
313
|
}
|
|
364
|
-
|
|
365
314
|
_createClass(LaunchDarklyAdapter, [{
|
|
366
315
|
key: "configure",
|
|
367
316
|
value: function () {
|
|
368
317
|
var _configure = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(adapterArgs, adapterEventHandlers) {
|
|
369
318
|
var _this2 = this,
|
|
370
|
-
|
|
371
|
-
|
|
319
|
+
_sdk$clientOptions;
|
|
372
320
|
var handleFlagsChange, handleStatusChange, sdk, user, flags, _adapterArgs$subscrib, subscribeToFlagChanges, _adapterArgs$throwOnI, throwOnInitializationFailure, flagsUpdateDelayMs;
|
|
373
|
-
|
|
374
321
|
return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
|
|
375
322
|
while (1) {
|
|
376
323
|
switch (_context5.prev = _context5.next) {
|
|
@@ -382,7 +329,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
382
329
|
id: _this2.id
|
|
383
330
|
});
|
|
384
331
|
};
|
|
385
|
-
|
|
386
332
|
handleStatusChange = function handleStatusChange(nextStatus) {
|
|
387
333
|
if (_classPrivateFieldLooseBase(_this2, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) return;
|
|
388
334
|
adapterEventHandlers.onStatusStateChange({
|
|
@@ -390,17 +336,12 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
390
336
|
id: _this2.id
|
|
391
337
|
});
|
|
392
338
|
};
|
|
393
|
-
|
|
394
339
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = types.AdapterConfigurationStatus.Configuring;
|
|
395
|
-
|
|
396
340
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('flagsStateChange', handleFlagsChange);
|
|
397
|
-
|
|
398
341
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('statusStateChange', handleStatusChange);
|
|
399
|
-
|
|
400
342
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
|
|
401
343
|
configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
|
|
402
344
|
});
|
|
403
|
-
|
|
404
345
|
sdk = adapterArgs.sdk, user = adapterArgs.user, flags = adapterArgs.flags, _adapterArgs$subscrib = adapterArgs.subscribeToFlagChanges, subscribeToFlagChanges = _adapterArgs$subscrib === void 0 ? true : _adapterArgs$subscrib, _adapterArgs$throwOnI = adapterArgs.throwOnInitializationFailure, throwOnInitializationFailure = _adapterArgs$throwOnI === void 0 ? false : _adapterArgs$throwOnI, flagsUpdateDelayMs = adapterArgs.flagsUpdateDelayMs;
|
|
405
346
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = _classPrivateFieldLooseBase(this, _ensureUser)[_ensureUser](user);
|
|
406
347
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client = _classPrivateFieldLooseBase(this, _initializeClient)[_initializeClient](sdk.clientSideId, _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, (_sdk$clientOptions = sdk.clientOptions) !== null && _sdk$clientOptions !== void 0 ? _sdk$clientOptions : {});
|
|
@@ -409,7 +350,7 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
409
350
|
throwOnInitializationFailure: throwOnInitializationFailure
|
|
410
351
|
}).then(function (_ref12) {
|
|
411
352
|
var flagsFromSdk = _ref12.flagsFromSdk,
|
|
412
|
-
|
|
353
|
+
initializationStatus = _ref12.initializationStatus;
|
|
413
354
|
if (subscribeToFlagChanges && flagsFromSdk) _classPrivateFieldLooseBase(_this2, _setupFlagSubcription)[_setupFlagSubcription]({
|
|
414
355
|
flagsFromSdk: flagsFromSdk,
|
|
415
356
|
flagsUpdateDelayMs: flagsUpdateDelayMs
|
|
@@ -418,7 +359,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
418
359
|
initializationStatus: initializationStatus
|
|
419
360
|
};
|
|
420
361
|
}));
|
|
421
|
-
|
|
422
362
|
case 10:
|
|
423
363
|
case "end":
|
|
424
364
|
return _context5.stop();
|
|
@@ -426,11 +366,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
426
366
|
}
|
|
427
367
|
}, _callee5, this);
|
|
428
368
|
}));
|
|
429
|
-
|
|
430
369
|
function configure(_x3, _x4) {
|
|
431
370
|
return _configure.apply(this, arguments);
|
|
432
371
|
}
|
|
433
|
-
|
|
434
372
|
return configure;
|
|
435
373
|
}()
|
|
436
374
|
}, {
|
|
@@ -446,31 +384,24 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
446
384
|
_context6.next = 2;
|
|
447
385
|
break;
|
|
448
386
|
}
|
|
449
|
-
|
|
450
387
|
return _context6.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: please configure adapter before reconfiguring.')));
|
|
451
|
-
|
|
452
388
|
case 2:
|
|
453
389
|
nextUser = adapterArgs.user;
|
|
454
|
-
|
|
455
390
|
if (isEqual__default["default"](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, nextUser)) {
|
|
456
391
|
_context6.next = 8;
|
|
457
392
|
break;
|
|
458
393
|
}
|
|
459
|
-
|
|
460
394
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = _classPrivateFieldLooseBase(this, _ensureUser)[_ensureUser](nextUser);
|
|
461
395
|
_context6.next = 7;
|
|
462
396
|
return _classPrivateFieldLooseBase(this, _changeUserContext)[_changeUserContext](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user);
|
|
463
|
-
|
|
464
397
|
case 7:
|
|
465
398
|
return _context6.abrupt("return", Promise.resolve({
|
|
466
399
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
467
400
|
}));
|
|
468
|
-
|
|
469
401
|
case 8:
|
|
470
402
|
return _context6.abrupt("return", Promise.resolve({
|
|
471
403
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
472
404
|
}));
|
|
473
|
-
|
|
474
405
|
case 9:
|
|
475
406
|
case "end":
|
|
476
407
|
return _context6.stop();
|
|
@@ -478,11 +409,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
478
409
|
}
|
|
479
410
|
}, _callee6, this);
|
|
480
411
|
}));
|
|
481
|
-
|
|
482
412
|
function reconfigure(_x5, _x6) {
|
|
483
413
|
return _reconfigure.apply(this, arguments);
|
|
484
414
|
}
|
|
485
|
-
|
|
486
415
|
return reconfigure;
|
|
487
416
|
}()
|
|
488
417
|
}, {
|
|
@@ -494,7 +423,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
494
423
|
key: "setConfigurationStatus",
|
|
495
424
|
value: function setConfigurationStatus(nextConfigurationStatus) {
|
|
496
425
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
|
|
497
|
-
|
|
498
426
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
|
|
499
427
|
configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
|
|
500
428
|
});
|
|
@@ -520,17 +448,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
520
448
|
case 0:
|
|
521
449
|
isAdapterConfigured = this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured);
|
|
522
450
|
warning__default["default"](isAdapterConfigured, '@flopflip/launchdarkly-adapter: adapter not configured. User context can not be updated before.');
|
|
523
|
-
|
|
524
451
|
if (isAdapterConfigured) {
|
|
525
452
|
_context7.next = 4;
|
|
526
453
|
break;
|
|
527
454
|
}
|
|
528
|
-
|
|
529
455
|
return _context7.abrupt("return", Promise.reject(new Error('Can not update user context: adapter not yet configured.')));
|
|
530
|
-
|
|
531
456
|
case 4:
|
|
532
457
|
return _context7.abrupt("return", _classPrivateFieldLooseBase(this, _changeUserContext)[_changeUserContext](_objectSpread(_objectSpread({}, _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user), updatedUserProps)));
|
|
533
|
-
|
|
534
458
|
case 5:
|
|
535
459
|
case "end":
|
|
536
460
|
return _context7.stop();
|
|
@@ -538,22 +462,18 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
538
462
|
}
|
|
539
463
|
}, _callee7, this);
|
|
540
464
|
}));
|
|
541
|
-
|
|
542
465
|
function updateUserContext(_x7) {
|
|
543
466
|
return _updateUserContext.apply(this, arguments);
|
|
544
467
|
}
|
|
545
|
-
|
|
546
468
|
return updateUserContext;
|
|
547
469
|
}()
|
|
548
470
|
}]);
|
|
549
|
-
|
|
550
471
|
return LaunchDarklyAdapter;
|
|
551
472
|
}();
|
|
552
|
-
|
|
553
473
|
var adapter = new LaunchDarklyAdapter();
|
|
554
474
|
adapterUtilities.exposeGlobally(adapter);
|
|
555
475
|
|
|
556
|
-
var version = "5.0.
|
|
476
|
+
var version = "5.0.32";
|
|
557
477
|
|
|
558
478
|
exports["default"] = adapter;
|
|
559
479
|
exports.version = version;
|
|
@@ -17,37 +17,22 @@ import warning from 'tiny-warning';
|
|
|
17
17
|
import merge from 'ts-deepmerge';
|
|
18
18
|
|
|
19
19
|
var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
|
|
20
|
-
|
|
21
20
|
var _updateFlagsInAdapterState = /*#__PURE__*/_classPrivateFieldLooseKey("updateFlagsInAdapterState");
|
|
22
|
-
|
|
23
21
|
var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
|
|
24
|
-
|
|
25
22
|
var _getIsFlagUnsubcribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagUnsubcribed");
|
|
26
|
-
|
|
27
23
|
var _getIsFlagLocked = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagLocked");
|
|
28
|
-
|
|
29
24
|
var _withoutUnsubscribedOrLockedFlags = /*#__PURE__*/_classPrivateFieldLooseKey("withoutUnsubscribedOrLockedFlags");
|
|
30
|
-
|
|
31
25
|
var _getIsAnonymousUser = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAnonymousUser");
|
|
32
|
-
|
|
33
26
|
var _ensureUser = /*#__PURE__*/_classPrivateFieldLooseKey("ensureUser");
|
|
34
|
-
|
|
35
27
|
var _initializeClient = /*#__PURE__*/_classPrivateFieldLooseKey("initializeClient");
|
|
36
|
-
|
|
37
28
|
var _changeUserContext = /*#__PURE__*/_classPrivateFieldLooseKey("changeUserContext");
|
|
38
|
-
|
|
39
29
|
var _getInitialFlags = /*#__PURE__*/_classPrivateFieldLooseKey("getInitialFlags");
|
|
40
|
-
|
|
41
30
|
var _didFlagChange = /*#__PURE__*/_classPrivateFieldLooseKey("didFlagChange");
|
|
42
|
-
|
|
43
31
|
var _setupFlagSubcription = /*#__PURE__*/_classPrivateFieldLooseKey("setupFlagSubcription");
|
|
44
|
-
|
|
45
32
|
var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
46
33
|
function LaunchDarklyAdapter() {
|
|
47
34
|
var _this = this;
|
|
48
|
-
|
|
49
35
|
_classCallCheck(this, LaunchDarklyAdapter);
|
|
50
|
-
|
|
51
36
|
Object.defineProperty(this, _adapterState, {
|
|
52
37
|
writable: true,
|
|
53
38
|
value: void 0
|
|
@@ -58,19 +43,15 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
58
43
|
value: function value(flags, options) {
|
|
59
44
|
var updatedFlags = Object.entries(flags).reduce(function (updatedFlags, _ref) {
|
|
60
45
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
flagName = _ref2[0],
|
|
47
|
+
flagValue = _ref2[1];
|
|
64
48
|
if (_classPrivateFieldLooseBase(_this, _getIsFlagLocked)[_getIsFlagLocked](flagName)) return updatedFlags;
|
|
65
|
-
|
|
66
49
|
if (options !== null && options !== void 0 && options.lockFlags) {
|
|
67
50
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].lockedFlags.add(flagName);
|
|
68
51
|
}
|
|
69
|
-
|
|
70
52
|
if (options !== null && options !== void 0 && options.unsubscribeFlags) {
|
|
71
53
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].unsubscribedFlags.add(flagName);
|
|
72
54
|
}
|
|
73
|
-
|
|
74
55
|
updatedFlags = _objectSpread(_objectSpread({}, updatedFlags), {}, _defineProperty({}, flagName, flagValue));
|
|
75
56
|
return updatedFlags;
|
|
76
57
|
}, {});
|
|
@@ -100,8 +81,7 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
100
81
|
value: function value(flags) {
|
|
101
82
|
return Object.fromEntries(Object.entries(flags).filter(function (_ref3) {
|
|
102
83
|
var _ref4 = _slicedToArray(_ref3, 1),
|
|
103
|
-
|
|
104
|
-
|
|
84
|
+
flagName = _ref4[0];
|
|
105
85
|
return !_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](flagName) && !_classPrivateFieldLooseBase(_this, _getIsFlagLocked)[_getIsFlagLocked](flagName);
|
|
106
86
|
}));
|
|
107
87
|
}
|
|
@@ -115,9 +95,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
115
95
|
Object.defineProperty(this, _ensureUser, {
|
|
116
96
|
writable: true,
|
|
117
97
|
value: function value(user) {
|
|
118
|
-
var isAnonymousUser = _classPrivateFieldLooseBase(_this, _getIsAnonymousUser)[_getIsAnonymousUser](user);
|
|
119
|
-
|
|
98
|
+
var isAnonymousUser = _classPrivateFieldLooseBase(_this, _getIsAnonymousUser)[_getIsAnonymousUser](user);
|
|
120
99
|
|
|
100
|
+
// NOTE: When marked `anonymous` the SDK will generate a unique key and cache it in local storage
|
|
121
101
|
return merge(user, {
|
|
122
102
|
key: isAnonymousUser ? undefined : user.key,
|
|
123
103
|
anonymous: isAnonymousUser
|
|
@@ -135,13 +115,11 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
135
115
|
value: function () {
|
|
136
116
|
var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(nextUser) {
|
|
137
117
|
var _classPrivateFieldLoo;
|
|
138
|
-
|
|
139
118
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
140
119
|
while (1) {
|
|
141
120
|
switch (_context.prev = _context.next) {
|
|
142
121
|
case 0:
|
|
143
122
|
return _context.abrupt("return", (_classPrivateFieldLoo = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) !== null && _classPrivateFieldLoo !== void 0 && _classPrivateFieldLoo.identify ? _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.identify(nextUser) : Promise.reject(new Error('Can not change user context: client not yet initialized.')));
|
|
144
|
-
|
|
145
123
|
case 1:
|
|
146
124
|
case "end":
|
|
147
125
|
return _context.stop();
|
|
@@ -149,11 +127,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
149
127
|
}
|
|
150
128
|
}, _callee);
|
|
151
129
|
}));
|
|
152
|
-
|
|
153
130
|
function value(_x) {
|
|
154
131
|
return _value.apply(this, arguments);
|
|
155
132
|
}
|
|
156
|
-
|
|
157
133
|
return value;
|
|
158
134
|
}()
|
|
159
135
|
});
|
|
@@ -167,15 +143,12 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
167
143
|
switch (_context4.prev = _context4.next) {
|
|
168
144
|
case 0:
|
|
169
145
|
flags = _ref5.flags, throwOnInitializationFailure = _ref5.throwOnInitializationFailure;
|
|
170
|
-
|
|
171
146
|
if (!_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) {
|
|
172
147
|
_context4.next = 3;
|
|
173
148
|
break;
|
|
174
149
|
}
|
|
175
|
-
|
|
176
150
|
return _context4.abrupt("return", _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.waitForInitialization().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
177
151
|
var flagsFromSdk, _i, _Object$entries, _ref9, _ref8, requestedFlagName, defaultFlagValue, denormalizedRequestedFlagName, normalizedFlags, _flags;
|
|
178
|
-
|
|
179
152
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
180
153
|
while (1) {
|
|
181
154
|
switch (_context2.prev = _context2.next) {
|
|
@@ -184,7 +157,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
184
157
|
flagsFromSdk = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.allFlags();
|
|
185
158
|
} else if (_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client && flags) {
|
|
186
159
|
flagsFromSdk = {};
|
|
187
|
-
|
|
188
160
|
for (_i = 0, _Object$entries = Object.entries(flags); _i < _Object$entries.length; _i++) {
|
|
189
161
|
_ref9 = _Object$entries[_i];
|
|
190
162
|
_ref8 = _slicedToArray(_ref9, 2);
|
|
@@ -194,21 +166,16 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
194
166
|
flagsFromSdk[denormalizedRequestedFlagName] = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.variation(denormalizedRequestedFlagName, defaultFlagValue);
|
|
195
167
|
}
|
|
196
168
|
}
|
|
197
|
-
|
|
198
169
|
if (flagsFromSdk) {
|
|
199
170
|
normalizedFlags = normalizeFlags(flagsFromSdk);
|
|
200
171
|
_flags = _classPrivateFieldLooseBase(_this, _withoutUnsubscribedOrLockedFlags)[_withoutUnsubscribedOrLockedFlags](normalizedFlags);
|
|
201
|
-
|
|
202
172
|
_this.updateFlags(_flags);
|
|
203
173
|
}
|
|
204
|
-
|
|
205
174
|
_this.setConfigurationStatus(AdapterConfigurationStatus.Configured);
|
|
206
|
-
|
|
207
175
|
return _context2.abrupt("return", Promise.resolve({
|
|
208
176
|
flagsFromSdk: flagsFromSdk,
|
|
209
177
|
initializationStatus: AdapterInitializationStatus.Succeeded
|
|
210
178
|
}));
|
|
211
|
-
|
|
212
179
|
case 4:
|
|
213
180
|
case "end":
|
|
214
181
|
return _context2.stop();
|
|
@@ -224,16 +191,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
224
191
|
_context3.next = 2;
|
|
225
192
|
break;
|
|
226
193
|
}
|
|
227
|
-
|
|
228
194
|
return _context3.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: adapter failed to initialize.')));
|
|
229
|
-
|
|
230
195
|
case 2:
|
|
231
196
|
console.warn('@flopflip/launchdarkly-adapter: adapter failed to initialize.');
|
|
232
197
|
return _context3.abrupt("return", Promise.resolve({
|
|
233
198
|
flagsFromSdk: undefined,
|
|
234
199
|
initializationStatus: AdapterInitializationStatus.Failed
|
|
235
200
|
}));
|
|
236
|
-
|
|
237
201
|
case 4:
|
|
238
202
|
case "end":
|
|
239
203
|
return _context3.stop();
|
|
@@ -241,10 +205,8 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
241
205
|
}
|
|
242
206
|
}, _callee3);
|
|
243
207
|
}))));
|
|
244
|
-
|
|
245
208
|
case 3:
|
|
246
209
|
return _context4.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: can not subscribe with non initialized client.')));
|
|
247
|
-
|
|
248
210
|
case 4:
|
|
249
211
|
case "end":
|
|
250
212
|
return _context4.stop();
|
|
@@ -252,11 +214,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
252
214
|
}
|
|
253
215
|
}, _callee4);
|
|
254
216
|
}));
|
|
255
|
-
|
|
256
217
|
function value(_x2) {
|
|
257
218
|
return _value2.apply(this, arguments);
|
|
258
219
|
}
|
|
259
|
-
|
|
260
220
|
return value;
|
|
261
221
|
}()
|
|
262
222
|
});
|
|
@@ -264,7 +224,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
264
224
|
writable: true,
|
|
265
225
|
value: function value(flagName, nextFlagValue) {
|
|
266
226
|
var previousFlagValue = _this.getFlag(flagName);
|
|
267
|
-
|
|
268
227
|
if (previousFlagValue === undefined) return true;
|
|
269
228
|
return previousFlagValue !== nextFlagValue;
|
|
270
229
|
}
|
|
@@ -273,31 +232,27 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
273
232
|
writable: true,
|
|
274
233
|
value: function value(_ref11) {
|
|
275
234
|
var flagsFromSdk = _ref11.flagsFromSdk,
|
|
276
|
-
|
|
277
|
-
|
|
235
|
+
flagsUpdateDelayMs = _ref11.flagsUpdateDelayMs;
|
|
278
236
|
var _loop = function _loop(flagName) {
|
|
279
237
|
// Dispatch whenever a configured flag value changes
|
|
280
238
|
if (Object.prototype.hasOwnProperty.call(flagsFromSdk, flagName) && _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client) {
|
|
281
239
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].client.on("change:".concat(flagName), function (flagValue) {
|
|
282
240
|
var _normalizeFlag = normalizeFlag(flagName, flagValue),
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
if (_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](normalizedFlagName)) return; // Sometimes the SDK flushes flag changes without a value having changed.
|
|
241
|
+
_normalizeFlag2 = _slicedToArray(_normalizeFlag, 2),
|
|
242
|
+
normalizedFlagName = _normalizeFlag2[0],
|
|
243
|
+
normalizedFlagValue = _normalizeFlag2[1];
|
|
244
|
+
if (_classPrivateFieldLooseBase(_this, _getIsFlagUnsubcribed)[_getIsFlagUnsubcribed](normalizedFlagName)) return;
|
|
288
245
|
|
|
246
|
+
// Sometimes the SDK flushes flag changes without a value having changed.
|
|
289
247
|
if (!_classPrivateFieldLooseBase(_this, _didFlagChange)[_didFlagChange](normalizedFlagName, normalizedFlagValue)) return;
|
|
248
|
+
var updatedFlags = _defineProperty({}, normalizedFlagName, normalizedFlagValue);
|
|
290
249
|
|
|
291
|
-
|
|
250
|
+
// NOTE: Adapter state needs to be updated outside of debounced-fn
|
|
292
251
|
// so that no flag updates are lost.
|
|
293
|
-
|
|
294
|
-
|
|
295
252
|
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](updatedFlags);
|
|
296
|
-
|
|
297
253
|
var flushFlagsUpdate = function flushFlagsUpdate() {
|
|
298
254
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags);
|
|
299
255
|
};
|
|
300
|
-
|
|
301
256
|
var scheduleImmediately = {
|
|
302
257
|
before: true,
|
|
303
258
|
after: false
|
|
@@ -312,28 +267,23 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
312
267
|
});
|
|
313
268
|
}
|
|
314
269
|
};
|
|
315
|
-
|
|
316
270
|
for (var flagName in flagsFromSdk) {
|
|
317
271
|
_loop(flagName);
|
|
318
272
|
}
|
|
319
273
|
}
|
|
320
274
|
});
|
|
321
|
-
|
|
322
275
|
this.updateFlags = function (flags, options) {
|
|
323
|
-
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags, options);
|
|
324
|
-
|
|
276
|
+
_classPrivateFieldLooseBase(_this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags, options);
|
|
325
277
|
|
|
278
|
+
// ...and flush initial state of flags
|
|
326
279
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags);
|
|
327
280
|
};
|
|
328
|
-
|
|
329
281
|
this.unsubscribe = function () {
|
|
330
282
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = AdapterSubscriptionStatus.Unsubscribed;
|
|
331
283
|
};
|
|
332
|
-
|
|
333
284
|
this.subscribe = function () {
|
|
334
285
|
_classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = AdapterSubscriptionStatus.Subscribed;
|
|
335
286
|
};
|
|
336
|
-
|
|
337
287
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState] = {
|
|
338
288
|
subscriptionStatus: AdapterSubscriptionStatus.Subscribed,
|
|
339
289
|
configurationStatus: AdapterConfigurationStatus.Unconfigured,
|
|
@@ -348,16 +298,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
348
298
|
};
|
|
349
299
|
this.id = adapterIdentifiers.launchdarkly;
|
|
350
300
|
}
|
|
351
|
-
|
|
352
301
|
_createClass(LaunchDarklyAdapter, [{
|
|
353
302
|
key: "configure",
|
|
354
303
|
value: function () {
|
|
355
304
|
var _configure = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(adapterArgs, adapterEventHandlers) {
|
|
356
305
|
var _this2 = this,
|
|
357
|
-
|
|
358
|
-
|
|
306
|
+
_sdk$clientOptions;
|
|
359
307
|
var handleFlagsChange, handleStatusChange, sdk, user, flags, _adapterArgs$subscrib, subscribeToFlagChanges, _adapterArgs$throwOnI, throwOnInitializationFailure, flagsUpdateDelayMs;
|
|
360
|
-
|
|
361
308
|
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
362
309
|
while (1) {
|
|
363
310
|
switch (_context5.prev = _context5.next) {
|
|
@@ -369,7 +316,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
369
316
|
id: _this2.id
|
|
370
317
|
});
|
|
371
318
|
};
|
|
372
|
-
|
|
373
319
|
handleStatusChange = function handleStatusChange(nextStatus) {
|
|
374
320
|
if (_classPrivateFieldLooseBase(_this2, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) return;
|
|
375
321
|
adapterEventHandlers.onStatusStateChange({
|
|
@@ -377,17 +323,12 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
377
323
|
id: _this2.id
|
|
378
324
|
});
|
|
379
325
|
};
|
|
380
|
-
|
|
381
326
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = AdapterConfigurationStatus.Configuring;
|
|
382
|
-
|
|
383
327
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('flagsStateChange', handleFlagsChange);
|
|
384
|
-
|
|
385
328
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('statusStateChange', handleStatusChange);
|
|
386
|
-
|
|
387
329
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
|
|
388
330
|
configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
|
|
389
331
|
});
|
|
390
|
-
|
|
391
332
|
sdk = adapterArgs.sdk, user = adapterArgs.user, flags = adapterArgs.flags, _adapterArgs$subscrib = adapterArgs.subscribeToFlagChanges, subscribeToFlagChanges = _adapterArgs$subscrib === void 0 ? true : _adapterArgs$subscrib, _adapterArgs$throwOnI = adapterArgs.throwOnInitializationFailure, throwOnInitializationFailure = _adapterArgs$throwOnI === void 0 ? false : _adapterArgs$throwOnI, flagsUpdateDelayMs = adapterArgs.flagsUpdateDelayMs;
|
|
392
333
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = _classPrivateFieldLooseBase(this, _ensureUser)[_ensureUser](user);
|
|
393
334
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client = _classPrivateFieldLooseBase(this, _initializeClient)[_initializeClient](sdk.clientSideId, _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, (_sdk$clientOptions = sdk.clientOptions) !== null && _sdk$clientOptions !== void 0 ? _sdk$clientOptions : {});
|
|
@@ -396,7 +337,7 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
396
337
|
throwOnInitializationFailure: throwOnInitializationFailure
|
|
397
338
|
}).then(function (_ref12) {
|
|
398
339
|
var flagsFromSdk = _ref12.flagsFromSdk,
|
|
399
|
-
|
|
340
|
+
initializationStatus = _ref12.initializationStatus;
|
|
400
341
|
if (subscribeToFlagChanges && flagsFromSdk) _classPrivateFieldLooseBase(_this2, _setupFlagSubcription)[_setupFlagSubcription]({
|
|
401
342
|
flagsFromSdk: flagsFromSdk,
|
|
402
343
|
flagsUpdateDelayMs: flagsUpdateDelayMs
|
|
@@ -405,7 +346,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
405
346
|
initializationStatus: initializationStatus
|
|
406
347
|
};
|
|
407
348
|
}));
|
|
408
|
-
|
|
409
349
|
case 10:
|
|
410
350
|
case "end":
|
|
411
351
|
return _context5.stop();
|
|
@@ -413,11 +353,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
413
353
|
}
|
|
414
354
|
}, _callee5, this);
|
|
415
355
|
}));
|
|
416
|
-
|
|
417
356
|
function configure(_x3, _x4) {
|
|
418
357
|
return _configure.apply(this, arguments);
|
|
419
358
|
}
|
|
420
|
-
|
|
421
359
|
return configure;
|
|
422
360
|
}()
|
|
423
361
|
}, {
|
|
@@ -433,31 +371,24 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
433
371
|
_context6.next = 2;
|
|
434
372
|
break;
|
|
435
373
|
}
|
|
436
|
-
|
|
437
374
|
return _context6.abrupt("return", Promise.reject(new Error('@flopflip/launchdarkly-adapter: please configure adapter before reconfiguring.')));
|
|
438
|
-
|
|
439
375
|
case 2:
|
|
440
376
|
nextUser = adapterArgs.user;
|
|
441
|
-
|
|
442
377
|
if (isEqual(_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, nextUser)) {
|
|
443
378
|
_context6.next = 8;
|
|
444
379
|
break;
|
|
445
380
|
}
|
|
446
|
-
|
|
447
381
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = _classPrivateFieldLooseBase(this, _ensureUser)[_ensureUser](nextUser);
|
|
448
382
|
_context6.next = 7;
|
|
449
383
|
return _classPrivateFieldLooseBase(this, _changeUserContext)[_changeUserContext](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user);
|
|
450
|
-
|
|
451
384
|
case 7:
|
|
452
385
|
return _context6.abrupt("return", Promise.resolve({
|
|
453
386
|
initializationStatus: AdapterInitializationStatus.Succeeded
|
|
454
387
|
}));
|
|
455
|
-
|
|
456
388
|
case 8:
|
|
457
389
|
return _context6.abrupt("return", Promise.resolve({
|
|
458
390
|
initializationStatus: AdapterInitializationStatus.Succeeded
|
|
459
391
|
}));
|
|
460
|
-
|
|
461
392
|
case 9:
|
|
462
393
|
case "end":
|
|
463
394
|
return _context6.stop();
|
|
@@ -465,11 +396,9 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
465
396
|
}
|
|
466
397
|
}, _callee6, this);
|
|
467
398
|
}));
|
|
468
|
-
|
|
469
399
|
function reconfigure(_x5, _x6) {
|
|
470
400
|
return _reconfigure.apply(this, arguments);
|
|
471
401
|
}
|
|
472
|
-
|
|
473
402
|
return reconfigure;
|
|
474
403
|
}()
|
|
475
404
|
}, {
|
|
@@ -481,7 +410,6 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
481
410
|
key: "setConfigurationStatus",
|
|
482
411
|
value: function setConfigurationStatus(nextConfigurationStatus) {
|
|
483
412
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
|
|
484
|
-
|
|
485
413
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
|
|
486
414
|
configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
|
|
487
415
|
});
|
|
@@ -507,17 +435,13 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
507
435
|
case 0:
|
|
508
436
|
isAdapterConfigured = this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured);
|
|
509
437
|
warning(isAdapterConfigured, '@flopflip/launchdarkly-adapter: adapter not configured. User context can not be updated before.');
|
|
510
|
-
|
|
511
438
|
if (isAdapterConfigured) {
|
|
512
439
|
_context7.next = 4;
|
|
513
440
|
break;
|
|
514
441
|
}
|
|
515
|
-
|
|
516
442
|
return _context7.abrupt("return", Promise.reject(new Error('Can not update user context: adapter not yet configured.')));
|
|
517
|
-
|
|
518
443
|
case 4:
|
|
519
444
|
return _context7.abrupt("return", _classPrivateFieldLooseBase(this, _changeUserContext)[_changeUserContext](_objectSpread(_objectSpread({}, _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user), updatedUserProps)));
|
|
520
|
-
|
|
521
445
|
case 5:
|
|
522
446
|
case "end":
|
|
523
447
|
return _context7.stop();
|
|
@@ -525,21 +449,17 @@ var LaunchDarklyAdapter = /*#__PURE__*/function () {
|
|
|
525
449
|
}
|
|
526
450
|
}, _callee7, this);
|
|
527
451
|
}));
|
|
528
|
-
|
|
529
452
|
function updateUserContext(_x7) {
|
|
530
453
|
return _updateUserContext.apply(this, arguments);
|
|
531
454
|
}
|
|
532
|
-
|
|
533
455
|
return updateUserContext;
|
|
534
456
|
}()
|
|
535
457
|
}]);
|
|
536
|
-
|
|
537
458
|
return LaunchDarklyAdapter;
|
|
538
459
|
}();
|
|
539
|
-
|
|
540
460
|
var adapter = new LaunchDarklyAdapter();
|
|
541
461
|
exposeGlobally(adapter);
|
|
542
462
|
|
|
543
|
-
var version = "5.0.
|
|
463
|
+
var version = "5.0.32";
|
|
544
464
|
|
|
545
465
|
export { adapter as default, version };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flopflip/launchdarkly-adapter",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.32",
|
|
4
4
|
"description": "A adapter around the LaunchDarkly client for flipflop",
|
|
5
5
|
"main": "dist/flopflip-launchdarkly-adapter.cjs.js",
|
|
6
6
|
"module": "dist/flopflip-launchdarkly-adapter.esm.js",
|
|
@@ -26,15 +26,15 @@
|
|
|
26
26
|
"globalthis": "1.0.3"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@babel/runtime": "7.
|
|
30
|
-
"@flopflip/adapter-utilities": "1.0.
|
|
31
|
-
"@flopflip/types": "4.1.
|
|
29
|
+
"@babel/runtime": "7.19.4",
|
|
30
|
+
"@flopflip/adapter-utilities": "1.0.33",
|
|
31
|
+
"@flopflip/types": "4.1.28",
|
|
32
32
|
"debounce-fn": "4.0.0",
|
|
33
|
-
"launchdarkly-js-client-sdk": "2.
|
|
33
|
+
"launchdarkly-js-client-sdk": "2.24.0",
|
|
34
34
|
"lodash": "4.17.21",
|
|
35
35
|
"mitt": "3.0.0",
|
|
36
36
|
"tiny-warning": "1.0.3",
|
|
37
|
-
"ts-deepmerge": "
|
|
37
|
+
"ts-deepmerge": "4.0.0"
|
|
38
38
|
},
|
|
39
39
|
"keywords": [
|
|
40
40
|
"feature-flags",
|