@launchdarkly/js-client-sdk-common 1.7.0 → 1.9.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/CHANGELOG.md +54 -0
- package/dist/DataManager.d.ts +64 -0
- package/dist/DataManager.d.ts.map +1 -0
- package/dist/HookRunner.d.ts +12 -0
- package/dist/HookRunner.d.ts.map +1 -0
- package/dist/LDClientImpl.d.ts +14 -48
- package/dist/LDClientImpl.d.ts.map +1 -1
- package/dist/LDEmitter.d.ts +13 -1
- package/dist/LDEmitter.d.ts.map +1 -1
- package/dist/api/LDClient.d.ts +13 -14
- package/dist/api/LDClient.d.ts.map +1 -1
- package/dist/api/LDOptions.d.ts +28 -12
- package/dist/api/LDOptions.d.ts.map +1 -1
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/integrations/Hooks.d.ts +133 -0
- package/dist/api/integrations/Hooks.d.ts.map +1 -0
- package/dist/api/integrations/index.d.ts +2 -0
- package/dist/api/integrations/index.d.ts.map +1 -0
- package/dist/configuration/Configuration.d.ts +59 -19
- package/dist/configuration/Configuration.d.ts.map +1 -1
- package/dist/configuration/index.d.ts +2 -2
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/validators.d.ts.map +1 -1
- package/dist/context/addAutoEnv.d.ts +3 -3
- package/dist/context/addAutoEnv.d.ts.map +1 -1
- package/dist/crypto/digest.d.ts +3 -0
- package/dist/crypto/digest.d.ts.map +1 -0
- package/dist/datasource/DataSourceEventHandler.d.ts +16 -0
- package/dist/datasource/DataSourceEventHandler.d.ts.map +1 -0
- package/dist/datasource/DataSourceStatus.d.ts +39 -0
- package/dist/datasource/DataSourceStatus.d.ts.map +1 -0
- package/dist/datasource/DataSourceStatusErrorInfo.d.ts +8 -0
- package/dist/datasource/DataSourceStatusErrorInfo.d.ts.map +1 -0
- package/dist/datasource/DataSourceStatusManager.d.ts +40 -0
- package/dist/datasource/DataSourceStatusManager.d.ts.map +1 -0
- package/dist/diagnostics/createDiagnosticsInitConfig.d.ts +1 -1
- package/dist/diagnostics/createDiagnosticsInitConfig.d.ts.map +1 -1
- package/dist/diagnostics/createDiagnosticsManager.d.ts +1 -1
- package/dist/diagnostics/createDiagnosticsManager.d.ts.map +1 -1
- package/dist/events/createEventProcessor.d.ts +3 -3
- package/dist/events/createEventProcessor.d.ts.map +1 -1
- package/dist/flag-manager/FlagManager.d.ts +39 -15
- package/dist/flag-manager/FlagManager.d.ts.map +1 -1
- package/dist/flag-manager/FlagPersistence.d.ts +2 -1
- package/dist/flag-manager/FlagPersistence.d.ts.map +1 -1
- package/dist/flag-manager/FlagStore.d.ts.map +1 -1
- package/dist/index.cjs +1686 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +16 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1659 -0
- package/dist/index.mjs.map +1 -0
- package/dist/polling/PollingProcessor.d.ts.map +1 -1
- package/dist/polling/Requestor.d.ts +16 -1
- package/dist/polling/Requestor.d.ts.map +1 -1
- package/dist/storage/namespaceUtils.d.ts +7 -7
- package/dist/storage/namespaceUtils.d.ts.map +1 -1
- package/dist/streaming/DataSourceConfig.d.ts +24 -0
- package/dist/streaming/DataSourceConfig.d.ts.map +1 -0
- package/dist/streaming/StreamingProcessor.d.ts +33 -0
- package/dist/streaming/StreamingProcessor.d.ts.map +1 -0
- package/dist/streaming/index.d.ts +4 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +18 -7
- package/dist/LDClientImpl.js +0 -460
- package/dist/LDClientImpl.js.map +0 -1
- package/dist/LDEmitter.js +0 -64
- package/dist/LDEmitter.js.map +0 -1
- package/dist/api/ConnectionMode.js +0 -3
- package/dist/api/ConnectionMode.js.map +0 -1
- package/dist/api/LDClient.js +0 -3
- package/dist/api/LDClient.js.map +0 -1
- package/dist/api/LDEvaluationDetail.js +0 -3
- package/dist/api/LDEvaluationDetail.js.map +0 -1
- package/dist/api/LDIdentifyOptions.js +0 -3
- package/dist/api/LDIdentifyOptions.js.map +0 -1
- package/dist/api/LDOptions.js +0 -3
- package/dist/api/LDOptions.js.map +0 -1
- package/dist/api/index.js +0 -20
- package/dist/api/index.js.map +0 -1
- package/dist/configuration/Configuration.js +0 -73
- package/dist/configuration/Configuration.js.map +0 -1
- package/dist/configuration/index.js +0 -5
- package/dist/configuration/index.js.map +0 -1
- package/dist/configuration/validators.js +0 -37
- package/dist/configuration/validators.js.map +0 -1
- package/dist/context/addAutoEnv.js +0 -114
- package/dist/context/addAutoEnv.js.map +0 -1
- package/dist/context/ensureKey.js +0 -72
- package/dist/context/ensureKey.js.map +0 -1
- package/dist/diagnostics/createDiagnosticsInitConfig.js +0 -19
- package/dist/diagnostics/createDiagnosticsInitConfig.js.map +0 -1
- package/dist/diagnostics/createDiagnosticsManager.js +0 -12
- package/dist/diagnostics/createDiagnosticsManager.js.map +0 -1
- package/dist/evaluation/evaluationDetail.js +0 -20
- package/dist/evaluation/evaluationDetail.js.map +0 -1
- package/dist/events/EventFactory.js +0 -25
- package/dist/events/EventFactory.js.map +0 -1
- package/dist/events/createEventProcessor.js +0 -11
- package/dist/events/createEventProcessor.js.map +0 -1
- package/dist/flag-manager/ContextIndex.js +0 -64
- package/dist/flag-manager/ContextIndex.js.map +0 -1
- package/dist/flag-manager/FlagManager.js +0 -74
- package/dist/flag-manager/FlagManager.js.map +0 -1
- package/dist/flag-manager/FlagPersistence.js +0 -120
- package/dist/flag-manager/FlagPersistence.js.map +0 -1
- package/dist/flag-manager/FlagStore.js +0 -28
- package/dist/flag-manager/FlagStore.js.map +0 -1
- package/dist/flag-manager/FlagUpdater.js +0 -69
- package/dist/flag-manager/FlagUpdater.js.map +0 -1
- package/dist/flag-manager/ItemDescriptor.js +0 -3
- package/dist/flag-manager/ItemDescriptor.js.map +0 -1
- package/dist/flag-manager/calculateChangedKeys.js +0 -22
- package/dist/flag-manager/calculateChangedKeys.js.map +0 -1
- package/dist/index.js +0 -22
- package/dist/index.js.map +0 -1
- package/dist/polling/PollingProcessor.js +0 -79
- package/dist/polling/PollingProcessor.js.map +0 -1
- package/dist/polling/Requestor.js +0 -50
- package/dist/polling/Requestor.js.map +0 -1
- package/dist/storage/getOrGenerateKey.js +0 -21
- package/dist/storage/getOrGenerateKey.js.map +0 -1
- package/dist/storage/namespaceUtils.js +0 -61
- package/dist/storage/namespaceUtils.js.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
|
-
const validators_1 = require("./validators");
|
|
5
|
-
const DEFAULT_POLLING_INTERVAL = 60 * 5;
|
|
6
|
-
class Configuration {
|
|
7
|
-
constructor(pristineOptions = {}, internalOptions = {}) {
|
|
8
|
-
this.logger = (0, js_sdk_common_1.createSafeLogger)();
|
|
9
|
-
this.baseUri = Configuration.DEFAULT_POLLING;
|
|
10
|
-
this.eventsUri = js_sdk_common_1.ServiceEndpoints.DEFAULT_EVENTS;
|
|
11
|
-
this.streamUri = Configuration.DEFAULT_STREAM;
|
|
12
|
-
this.maxCachedContexts = 5;
|
|
13
|
-
this.capacity = 100;
|
|
14
|
-
this.diagnosticRecordingInterval = 900;
|
|
15
|
-
this.flushInterval = 30;
|
|
16
|
-
this.streamInitialReconnectDelay = 1;
|
|
17
|
-
this.allAttributesPrivate = false;
|
|
18
|
-
this.debug = false;
|
|
19
|
-
this.diagnosticOptOut = false;
|
|
20
|
-
this.sendEvents = true;
|
|
21
|
-
this.sendLDHeaders = true;
|
|
22
|
-
this.useReport = false;
|
|
23
|
-
this.withReasons = false;
|
|
24
|
-
this.privateAttributes = [];
|
|
25
|
-
this.initialConnectionMode = 'streaming';
|
|
26
|
-
this.pollInterval = DEFAULT_POLLING_INTERVAL;
|
|
27
|
-
const errors = this.validateTypesAndNames(pristineOptions);
|
|
28
|
-
errors.forEach((e) => this.logger.warn(e));
|
|
29
|
-
this.serviceEndpoints = new js_sdk_common_1.ServiceEndpoints(this.streamUri, this.baseUri, this.eventsUri, internalOptions.analyticsEventPath, internalOptions.diagnosticEventPath, internalOptions.includeAuthorizationHeader, pristineOptions.payloadFilterKey);
|
|
30
|
-
this.tags = new js_sdk_common_1.ApplicationTags({ application: this.applicationInfo, logger: this.logger });
|
|
31
|
-
}
|
|
32
|
-
validateTypesAndNames(pristineOptions) {
|
|
33
|
-
const errors = [];
|
|
34
|
-
Object.entries(pristineOptions).forEach(([k, v]) => {
|
|
35
|
-
const validator = validators_1.default[k];
|
|
36
|
-
if (validator) {
|
|
37
|
-
if (!validator.is(v)) {
|
|
38
|
-
const validatorType = validator.getType();
|
|
39
|
-
if (validatorType === 'boolean') {
|
|
40
|
-
errors.push(js_sdk_common_1.OptionMessages.wrongOptionTypeBoolean(k, typeof v));
|
|
41
|
-
this[k] = !!v;
|
|
42
|
-
}
|
|
43
|
-
else if (validatorType === 'boolean | undefined | null') {
|
|
44
|
-
errors.push(js_sdk_common_1.OptionMessages.wrongOptionTypeBoolean(k, typeof v));
|
|
45
|
-
if (typeof v !== 'boolean' && typeof v !== 'undefined' && v !== null) {
|
|
46
|
-
this[k] = !!v;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else if (validator instanceof js_sdk_common_1.NumberWithMinimum && js_sdk_common_1.TypeValidators.Number.is(v)) {
|
|
50
|
-
const { min } = validator;
|
|
51
|
-
errors.push(js_sdk_common_1.OptionMessages.optionBelowMinimum(k, v, min));
|
|
52
|
-
this[k] = min;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
errors.push(js_sdk_common_1.OptionMessages.wrongOptionType(k, validator.getType(), typeof v));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
// if an option is explicitly null, coerce to undefined
|
|
60
|
-
this[k] = v !== null && v !== void 0 ? v : undefined;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
errors.push(js_sdk_common_1.OptionMessages.unknownOption(k));
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
return errors;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
Configuration.DEFAULT_POLLING = 'https://clientsdk.launchdarkly.com';
|
|
71
|
-
Configuration.DEFAULT_STREAM = 'https://clientstream.launchdarkly.com';
|
|
72
|
-
exports.default = Configuration;
|
|
73
|
-
//# sourceMappingURL=Configuration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":";;AAAA,mDAA4C;AAE5C,kBAAe,uBAAa,CAAC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// eslint-disable-next-line max-classes-per-file
|
|
4
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
5
|
-
class ConnectionModeValidator {
|
|
6
|
-
is(u) {
|
|
7
|
-
return u === 'offline' || u === 'streaming' || u === 'polling';
|
|
8
|
-
}
|
|
9
|
-
getType() {
|
|
10
|
-
return `offline | streaming | polling`;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
const validators = {
|
|
14
|
-
initialConnectionMode: new ConnectionModeValidator(),
|
|
15
|
-
logger: js_sdk_common_1.TypeValidators.Object,
|
|
16
|
-
maxCachedContexts: js_sdk_common_1.TypeValidators.numberWithMin(0),
|
|
17
|
-
baseUri: js_sdk_common_1.TypeValidators.String,
|
|
18
|
-
streamUri: js_sdk_common_1.TypeValidators.String,
|
|
19
|
-
eventsUri: js_sdk_common_1.TypeValidators.String,
|
|
20
|
-
capacity: js_sdk_common_1.TypeValidators.numberWithMin(1),
|
|
21
|
-
diagnosticRecordingInterval: js_sdk_common_1.TypeValidators.numberWithMin(2),
|
|
22
|
-
flushInterval: js_sdk_common_1.TypeValidators.numberWithMin(2),
|
|
23
|
-
streamInitialReconnectDelay: js_sdk_common_1.TypeValidators.numberWithMin(0),
|
|
24
|
-
allAttributesPrivate: js_sdk_common_1.TypeValidators.Boolean,
|
|
25
|
-
debug: js_sdk_common_1.TypeValidators.Boolean,
|
|
26
|
-
diagnosticOptOut: js_sdk_common_1.TypeValidators.Boolean,
|
|
27
|
-
withReasons: js_sdk_common_1.TypeValidators.Boolean,
|
|
28
|
-
sendEvents: js_sdk_common_1.TypeValidators.Boolean,
|
|
29
|
-
pollInterval: js_sdk_common_1.TypeValidators.numberWithMin(30),
|
|
30
|
-
privateAttributes: js_sdk_common_1.TypeValidators.StringArray,
|
|
31
|
-
applicationInfo: js_sdk_common_1.TypeValidators.Object,
|
|
32
|
-
wrapperName: js_sdk_common_1.TypeValidators.String,
|
|
33
|
-
wrapperVersion: js_sdk_common_1.TypeValidators.String,
|
|
34
|
-
payloadFilterKey: js_sdk_common_1.TypeValidators.stringMatchingRegex(/^[a-zA-Z0-9](\w|\.|-)*$/),
|
|
35
|
-
};
|
|
36
|
-
exports.default = validators;
|
|
37
|
-
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":";;AAAA,gDAAgD;AAChD,+DAA4E;AAI5E,MAAM,uBAAuB;IAC3B,EAAE,CAAC,CAAU;QACX,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,SAAS,CAAC;IACjE,CAAC;IAED,OAAO;QACL,OAAO,+BAA+B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,UAAU,GAA2C;IACzD,qBAAqB,EAAE,IAAI,uBAAuB,EAAE;IACpD,MAAM,EAAE,8BAAc,CAAC,MAAM;IAC7B,iBAAiB,EAAE,8BAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAElD,OAAO,EAAE,8BAAc,CAAC,MAAM;IAC9B,SAAS,EAAE,8BAAc,CAAC,MAAM;IAChC,SAAS,EAAE,8BAAc,CAAC,MAAM;IAEhC,QAAQ,EAAE,8BAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACzC,2BAA2B,EAAE,8BAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,aAAa,EAAE,8BAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9C,2BAA2B,EAAE,8BAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAE5D,oBAAoB,EAAE,8BAAc,CAAC,OAAO;IAC5C,KAAK,EAAE,8BAAc,CAAC,OAAO;IAC7B,gBAAgB,EAAE,8BAAc,CAAC,OAAO;IACxC,WAAW,EAAE,8BAAc,CAAC,OAAO;IACnC,UAAU,EAAE,8BAAc,CAAC,OAAO;IAElC,YAAY,EAAE,8BAAc,CAAC,aAAa,CAAC,EAAE,CAAC;IAE9C,iBAAiB,EAAE,8BAAc,CAAC,WAAW;IAE7C,eAAe,EAAE,8BAAc,CAAC,MAAM;IACtC,WAAW,EAAE,8BAAc,CAAC,MAAM;IAClC,cAAc,EAAE,8BAAc,CAAC,MAAM;IACrC,gBAAgB,EAAE,8BAAc,CAAC,mBAAmB,CAAC,yBAAyB,CAAC;CAChF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.addAutoEnv = exports.addDeviceInfo = exports.addApplicationInfo = exports.toMulti = void 0;
|
|
15
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
16
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
17
|
-
const getOrGenerateKey_1 = require("../storage/getOrGenerateKey");
|
|
18
|
-
const namespaceUtils_1 = require("../storage/namespaceUtils");
|
|
19
|
-
const { isLegacyUser, isSingleKind, isMultiKind } = js_sdk_common_1.internal;
|
|
20
|
-
const defaultAutoEnvSchemaVersion = '1.0';
|
|
21
|
-
const toMulti = (c) => {
|
|
22
|
-
const { kind } = c, contextCommon = __rest(c, ["kind"]);
|
|
23
|
-
return {
|
|
24
|
-
kind: 'multi',
|
|
25
|
-
[kind]: contextCommon,
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
exports.toMulti = toMulti;
|
|
29
|
-
/**
|
|
30
|
-
* Clones the LDApplication object and populates the key, envAttributesVersion, id and version fields.
|
|
31
|
-
*
|
|
32
|
-
* @param crypto
|
|
33
|
-
* @param info
|
|
34
|
-
* @param applicationInfo
|
|
35
|
-
* @param config
|
|
36
|
-
* @return An LDApplication object with populated key, envAttributesVersion, id and version.
|
|
37
|
-
*/
|
|
38
|
-
const addApplicationInfo = ({ crypto, info }, { applicationInfo }) => {
|
|
39
|
-
var _a;
|
|
40
|
-
const { ld_application } = info.platformData();
|
|
41
|
-
let app = (_a = (0, js_sdk_common_1.deepCompact)(ld_application)) !== null && _a !== void 0 ? _a : {};
|
|
42
|
-
const id = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.id) || (app === null || app === void 0 ? void 0 : app.id);
|
|
43
|
-
if (id) {
|
|
44
|
-
const version = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.version) || (app === null || app === void 0 ? void 0 : app.version);
|
|
45
|
-
const name = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.name) || (app === null || app === void 0 ? void 0 : app.name);
|
|
46
|
-
const versionName = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.versionName) || (app === null || app === void 0 ? void 0 : app.versionName);
|
|
47
|
-
app = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, app), { id }), (version ? { version } : {})), (name ? { name } : {})), (versionName ? { versionName } : {}));
|
|
48
|
-
const hasher = crypto.createHash('sha256');
|
|
49
|
-
hasher.update(id);
|
|
50
|
-
app.key = hasher.digest('base64');
|
|
51
|
-
app.envAttributesVersion = app.envAttributesVersion || defaultAutoEnvSchemaVersion;
|
|
52
|
-
return app;
|
|
53
|
-
}
|
|
54
|
-
return undefined;
|
|
55
|
-
};
|
|
56
|
-
exports.addApplicationInfo = addApplicationInfo;
|
|
57
|
-
/**
|
|
58
|
-
* Clones the LDDevice object and populates the key and envAttributesVersion field.
|
|
59
|
-
*
|
|
60
|
-
* @param platform
|
|
61
|
-
* @return An LDDevice object with populated key and envAttributesVersion.
|
|
62
|
-
*/
|
|
63
|
-
const addDeviceInfo = async (platform) => {
|
|
64
|
-
var _a, _b, _c, _d;
|
|
65
|
-
const { ld_device, os } = platform.info.platformData();
|
|
66
|
-
const device = (_a = (0, js_sdk_common_1.deepCompact)(ld_device)) !== null && _a !== void 0 ? _a : {};
|
|
67
|
-
const name = (os === null || os === void 0 ? void 0 : os.name) || ((_b = device.os) === null || _b === void 0 ? void 0 : _b.name);
|
|
68
|
-
const version = (os === null || os === void 0 ? void 0 : os.version) || ((_c = device.os) === null || _c === void 0 ? void 0 : _c.version);
|
|
69
|
-
const family = (_d = device.os) === null || _d === void 0 ? void 0 : _d.family;
|
|
70
|
-
// only add device.os if there's data
|
|
71
|
-
if (name || version || family) {
|
|
72
|
-
device.os = Object.assign(Object.assign(Object.assign({}, (name ? { name } : {})), (version ? { version } : {})), (family ? { family } : {}));
|
|
73
|
-
}
|
|
74
|
-
// Check if device has any meaningful data before we return it.
|
|
75
|
-
if (Object.keys(device).filter((k) => k !== 'key' && k !== 'envAttributesVersion').length) {
|
|
76
|
-
const ldDeviceNamespace = (0, namespaceUtils_1.namespaceForGeneratedContextKey)('ld_device');
|
|
77
|
-
device.key = await (0, getOrGenerateKey_1.getOrGenerateKey)(ldDeviceNamespace, platform);
|
|
78
|
-
device.envAttributesVersion = device.envAttributesVersion || defaultAutoEnvSchemaVersion;
|
|
79
|
-
return device;
|
|
80
|
-
}
|
|
81
|
-
return undefined;
|
|
82
|
-
};
|
|
83
|
-
exports.addDeviceInfo = addDeviceInfo;
|
|
84
|
-
const addAutoEnv = async (context, platform, config) => {
|
|
85
|
-
// LDUser is not supported for auto env reporting
|
|
86
|
-
if (isLegacyUser(context)) {
|
|
87
|
-
return context;
|
|
88
|
-
}
|
|
89
|
-
let ld_application;
|
|
90
|
-
let ld_device;
|
|
91
|
-
// Check if customer contexts exist. Only override if they are not provided.
|
|
92
|
-
if ((isSingleKind(context) && context.kind !== 'ld_application') ||
|
|
93
|
-
(isMultiKind(context) && !context.ld_application)) {
|
|
94
|
-
ld_application = (0, exports.addApplicationInfo)(platform, config);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
config.logger.warn('Not adding ld_application environment attributes because it already exists.');
|
|
98
|
-
}
|
|
99
|
-
if ((isSingleKind(context) && context.kind !== 'ld_device') ||
|
|
100
|
-
(isMultiKind(context) && !context.ld_device)) {
|
|
101
|
-
ld_device = await (0, exports.addDeviceInfo)(platform);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
config.logger.warn('Not adding ld_device environment attributes because it already exists.');
|
|
105
|
-
}
|
|
106
|
-
// Unable to automatically add environment attributes for kind: {}. {} already exists.
|
|
107
|
-
if (ld_application || ld_device) {
|
|
108
|
-
const multi = isSingleKind(context) ? (0, exports.toMulti)(context) : context;
|
|
109
|
-
return Object.assign(Object.assign(Object.assign({}, multi), (ld_application ? { ld_application } : {})), (ld_device ? { ld_device } : {}));
|
|
110
|
-
}
|
|
111
|
-
return context;
|
|
112
|
-
};
|
|
113
|
-
exports.addAutoEnv = addAutoEnv;
|
|
114
|
-
//# sourceMappingURL=addAutoEnv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addAutoEnv.js","sourceRoot":"","sources":["../../src/context/addAutoEnv.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.ensureKey = void 0;
|
|
15
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
16
|
-
const getOrGenerateKey_1 = require("../storage/getOrGenerateKey");
|
|
17
|
-
const namespaceUtils_1 = require("../storage/namespaceUtils");
|
|
18
|
-
const { isLegacyUser, isMultiKind, isSingleKind } = js_sdk_common_1.internal;
|
|
19
|
-
/**
|
|
20
|
-
* This is the root ensureKey function. All other ensureKey functions reduce to this.
|
|
21
|
-
*
|
|
22
|
-
* - ensureKeyCommon // private root function
|
|
23
|
-
* - ensureKeySingle
|
|
24
|
-
* - ensureKeyMulti
|
|
25
|
-
* - ensureKeyLegacy
|
|
26
|
-
* - ensureKey // exported for external use
|
|
27
|
-
*
|
|
28
|
-
* @param kind The LDContext kind
|
|
29
|
-
* @param c The LDContext object
|
|
30
|
-
* @param platform Platform containing crypto and storage needed for storing and querying keys.
|
|
31
|
-
*/
|
|
32
|
-
const ensureKeyCommon = async (kind, c, platform) => {
|
|
33
|
-
const { anonymous, key } = c;
|
|
34
|
-
if (anonymous && !key) {
|
|
35
|
-
const storageKey = (0, namespaceUtils_1.namespaceForAnonymousGeneratedContextKey)(kind);
|
|
36
|
-
// This mutates a cloned copy of the original context from ensureyKey so this is safe.
|
|
37
|
-
// eslint-disable-next-line no-param-reassign
|
|
38
|
-
c.key = await (0, getOrGenerateKey_1.getOrGenerateKey)(storageKey, platform);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
const ensureKeySingle = async (c, platform) => {
|
|
42
|
-
await ensureKeyCommon(c.kind, c, platform);
|
|
43
|
-
};
|
|
44
|
-
const ensureKeyMulti = async (multiContext, platform) => {
|
|
45
|
-
const { kind } = multiContext, singleContexts = __rest(multiContext, ["kind"]);
|
|
46
|
-
return Promise.all(Object.entries(singleContexts).map(([k, c]) => ensureKeyCommon(k, c, platform)));
|
|
47
|
-
};
|
|
48
|
-
const ensureKeyLegacy = async (c, platform) => {
|
|
49
|
-
await ensureKeyCommon('user', c, platform);
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Ensure a key is always present in anonymous contexts. Non-anonymous contexts
|
|
53
|
-
* are not processed and will just be returned as is.
|
|
54
|
-
*
|
|
55
|
-
* @param context
|
|
56
|
-
* @param platform
|
|
57
|
-
*/
|
|
58
|
-
const ensureKey = async (context, platform) => {
|
|
59
|
-
const cloned = (0, js_sdk_common_1.clone)(context);
|
|
60
|
-
if (isSingleKind(cloned)) {
|
|
61
|
-
await ensureKeySingle(cloned, platform);
|
|
62
|
-
}
|
|
63
|
-
if (isMultiKind(cloned)) {
|
|
64
|
-
await ensureKeyMulti(cloned, platform);
|
|
65
|
-
}
|
|
66
|
-
if (isLegacyUser(cloned)) {
|
|
67
|
-
await ensureKeyLegacy(cloned, platform);
|
|
68
|
-
}
|
|
69
|
-
return cloned;
|
|
70
|
-
};
|
|
71
|
-
exports.ensureKey = ensureKey;
|
|
72
|
-
//# sourceMappingURL=ensureKey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureKey.js","sourceRoot":"","sources":["../../src/context/ensureKey.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DASqC;AAErC,kEAA+D;AAC/D,8DAAqF;AAErF,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,wBAAQ,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAE,CAAkB,EAAE,QAAkB,EAAE,EAAE;IACrF,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE7B,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,UAAU,GAAG,IAAA,yDAAwC,EAAC,IAAI,CAAC,CAAC;QAClE,sFAAsF;QACtF,6CAA6C;QAC7C,CAAC,CAAC,GAAG,GAAG,MAAM,IAAA,mCAAgB,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KACtD;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,CAAsB,EAAE,QAAkB,EAAE,EAAE;IAC3E,MAAM,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAAE,YAAgC,EAAE,QAAkB,EAAE,EAAE;IACpF,MAAM,EAAE,IAAI,KAAwB,YAAY,EAA/B,cAAc,UAAK,YAAY,EAA1C,QAA2B,CAAe,CAAC;IAEjD,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5C,eAAe,CAAC,CAAC,EAAE,CAAoB,EAAE,QAAQ,CAAC,CACnD,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,CAAS,EAAE,QAAkB,EAAE,EAAE;IAC9D,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;;;;;GAMG;AACI,MAAM,SAAS,GAAG,KAAK,EAAE,OAAkB,EAAE,QAAkB,EAAE,EAAE;IACxE,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAY,OAAO,CAAC,CAAC;IAEzC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,eAAe,CAAC,MAA6B,EAAE,QAAQ,CAAC,CAAC;KAChE;IAED,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,cAAc,CAAC,MAA4B,EAAE,QAAQ,CAAC,CAAC;KAC9D;IAED,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,eAAe,CAAC,MAAgB,EAAE,QAAQ,CAAC,CAAC;KACnD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
|
-
const configuration_1 = require("../configuration");
|
|
5
|
-
const createDiagnosticsInitConfig = (config) => ({
|
|
6
|
-
customBaseURI: config.baseUri !== configuration_1.default.DEFAULT_POLLING,
|
|
7
|
-
customStreamURI: config.streamUri !== configuration_1.default.DEFAULT_STREAM,
|
|
8
|
-
customEventsURI: config.eventsUri !== js_sdk_common_1.ServiceEndpoints.DEFAULT_EVENTS,
|
|
9
|
-
eventsCapacity: config.capacity,
|
|
10
|
-
eventsFlushIntervalMillis: (0, js_sdk_common_1.secondsToMillis)(config.flushInterval),
|
|
11
|
-
reconnectTimeMillis: (0, js_sdk_common_1.secondsToMillis)(config.streamInitialReconnectDelay),
|
|
12
|
-
diagnosticRecordingIntervalMillis: (0, js_sdk_common_1.secondsToMillis)(config.diagnosticRecordingInterval),
|
|
13
|
-
allAttributesPrivate: config.allAttributesPrivate,
|
|
14
|
-
// TODO: Implement when corresponding features are implemented.
|
|
15
|
-
usingSecureMode: false,
|
|
16
|
-
bootstrapMode: false,
|
|
17
|
-
});
|
|
18
|
-
exports.default = createDiagnosticsInitConfig;
|
|
19
|
-
//# sourceMappingURL=createDiagnosticsInitConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createDiagnosticsInitConfig.js","sourceRoot":"","sources":["../../src/diagnostics/createDiagnosticsInitConfig.ts"],"names":[],"mappings":";;AAAA,+DAAgF;AAEhF,oDAA6C;AAiB7C,MAAM,2BAA2B,GAAG,CAAC,MAAqB,EAAyB,EAAE,CAAC,CAAC;IACrF,aAAa,EAAE,MAAM,CAAC,OAAO,KAAK,uBAAa,CAAC,eAAe;IAC/D,eAAe,EAAE,MAAM,CAAC,SAAS,KAAK,uBAAa,CAAC,cAAc;IAClE,eAAe,EAAE,MAAM,CAAC,SAAS,KAAK,gCAAgB,CAAC,cAAc;IACrE,cAAc,EAAE,MAAM,CAAC,QAAQ;IAC/B,yBAAyB,EAAE,IAAA,+BAAe,EAAC,MAAM,CAAC,aAAa,CAAC;IAChE,mBAAmB,EAAE,IAAA,+BAAe,EAAC,MAAM,CAAC,2BAA2B,CAAC;IACxE,iCAAiC,EAAE,IAAA,+BAAe,EAAC,MAAM,CAAC,2BAA2B,CAAC;IACtF,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;IACjD,+DAA+D;IAC/D,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,kBAAe,2BAA2B,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
|
-
const createDiagnosticsInitConfig_1 = require("./createDiagnosticsInitConfig");
|
|
5
|
-
const createDiagnosticsManager = (clientSideID, config, platform) => {
|
|
6
|
-
if (config.sendEvents && !config.diagnosticOptOut) {
|
|
7
|
-
return new js_sdk_common_1.internal.DiagnosticsManager(clientSideID, platform, (0, createDiagnosticsInitConfig_1.default)(config));
|
|
8
|
-
}
|
|
9
|
-
return undefined;
|
|
10
|
-
};
|
|
11
|
-
exports.default = createDiagnosticsManager;
|
|
12
|
-
//# sourceMappingURL=createDiagnosticsManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createDiagnosticsManager.js","sourceRoot":"","sources":["../../src/diagnostics/createDiagnosticsManager.ts"],"names":[],"mappings":";;AAAA,+DAAiE;AAGjE,+EAAwE;AAExE,MAAM,wBAAwB,GAAG,CAC/B,YAAoB,EACpB,MAAqB,EACrB,QAAkB,EAClB,EAAE;IACF,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;QACjD,OAAO,IAAI,wBAAQ,CAAC,kBAAkB,CACpC,YAAY,EACZ,QAAQ,EACR,IAAA,qCAA2B,EAAC,MAAM,CAAC,CACpC,CAAC;KACH;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,wBAAwB,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSuccessEvaluationDetail = exports.createErrorEvaluationDetail = void 0;
|
|
4
|
-
function createErrorEvaluationDetail(errorKind, def) {
|
|
5
|
-
return {
|
|
6
|
-
value: def !== null && def !== void 0 ? def : null,
|
|
7
|
-
variationIndex: null,
|
|
8
|
-
reason: { kind: 'ERROR', errorKind },
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
exports.createErrorEvaluationDetail = createErrorEvaluationDetail;
|
|
12
|
-
function createSuccessEvaluationDetail(value, variationIndex, reason) {
|
|
13
|
-
return {
|
|
14
|
-
value,
|
|
15
|
-
variationIndex: variationIndex !== null && variationIndex !== void 0 ? variationIndex : null,
|
|
16
|
-
reason: reason !== null && reason !== void 0 ? reason : null,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
exports.createSuccessEvaluationDetail = createSuccessEvaluationDetail;
|
|
20
|
-
//# sourceMappingURL=evaluationDetail.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluationDetail.js","sourceRoot":"","sources":["../../src/evaluation/evaluationDetail.ts"],"names":[],"mappings":";;;AAIA,SAAgB,2BAA2B,CACzC,SAA8B,EAC9B,GAAiB;IAEjB,OAAO;QACL,KAAK,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;KACrC,CAAC;AACJ,CAAC;AATD,kEASC;AAED,SAAgB,6BAA6B,CAC3C,KAAkB,EAClB,cAAuB,EACvB,MAA2B;IAE3B,OAAO;QACL,KAAK;QACL,cAAc,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI;QACtC,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI;KACvB,CAAC;AACJ,CAAC;AAVD,sEAUC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
|
-
/**
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
class EventFactory extends js_sdk_common_1.internal.EventFactoryBase {
|
|
8
|
-
evalEventClient(flagKey, value, defaultVal, flag, context, reason) {
|
|
9
|
-
const { trackEvents, debugEventsUntilDate, trackReason, version, variation } = flag;
|
|
10
|
-
return super.evalEvent({
|
|
11
|
-
addExperimentData: trackReason,
|
|
12
|
-
context,
|
|
13
|
-
debugEventsUntilDate,
|
|
14
|
-
defaultVal,
|
|
15
|
-
flagKey,
|
|
16
|
-
reason,
|
|
17
|
-
trackEvents,
|
|
18
|
-
value,
|
|
19
|
-
variation,
|
|
20
|
-
version,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.default = EventFactory;
|
|
25
|
-
//# sourceMappingURL=EventFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventFactory.js","sourceRoot":"","sources":["../../src/events/EventFactory.ts"],"names":[],"mappings":";;AAAA,+DAAiG;AAIjG;;GAEG;AACH,MAAqB,YAAa,SAAQ,wBAAQ,CAAC,gBAAgB;IACjE,eAAe,CACb,OAAe,EACf,KAAkB,EAClB,UAAe,EACf,IAAU,EACV,OAAgB,EAChB,MAA2B;QAE3B,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAEpF,OAAO,KAAK,CAAC,SAAS,CAAC;YACrB,iBAAiB,EAAE,WAAW;YAC9B,OAAO;YACP,oBAAoB;YACpB,UAAU;YACV,OAAO;YACP,MAAM;YACN,WAAW;YACX,KAAK;YACL,SAAS;YACT,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAxBD,+BAwBC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
|
-
const createEventProcessor = (clientSideID, config, platform, diagnosticsManager, start = false) => {
|
|
5
|
-
if (config.sendEvents) {
|
|
6
|
-
return new js_sdk_common_1.internal.EventProcessor(Object.assign(Object.assign({}, config), { eventsCapacity: config.capacity }), new js_sdk_common_1.ClientContext(clientSideID, config, platform), undefined, diagnosticsManager, start);
|
|
7
|
-
}
|
|
8
|
-
return undefined;
|
|
9
|
-
};
|
|
10
|
-
exports.default = createEventProcessor;
|
|
11
|
-
//# sourceMappingURL=createEventProcessor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createEventProcessor.js","sourceRoot":"","sources":["../../src/events/createEventProcessor.ts"],"names":[],"mappings":";;AAAA,+DAAgF;AAIhF,MAAM,oBAAoB,GAAG,CAC3B,YAAoB,EACpB,MAAqB,EACrB,QAAkB,EAClB,kBAAgD,EAChD,QAAiB,KAAK,EACe,EAAE;IACvC,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,OAAO,IAAI,wBAAQ,CAAC,cAAc,iCAC3B,MAAM,KAAE,cAAc,EAAE,MAAM,CAAC,QAAQ,KAC5C,IAAI,6BAAa,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EACjD,SAAS,EACT,kBAAkB,EAClB,KAAK,CACN,CAAC;KACH;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* An index for tracking the most recently used contexts by timestamp with the ability to
|
|
5
|
-
* update entry timestamps and prune out least used contexts above a max capacity provided.
|
|
6
|
-
*/
|
|
7
|
-
class ContextIndex {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.container = { index: new Array() };
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Creates a {@link ContextIndex} from its JSON representation (likely retrieved from persistence).
|
|
13
|
-
* @param json representation of the {@link ContextIndex}
|
|
14
|
-
* @returns the {@link ContextIndex}
|
|
15
|
-
*/
|
|
16
|
-
static fromJson(json) {
|
|
17
|
-
const contextIndex = new ContextIndex();
|
|
18
|
-
try {
|
|
19
|
-
contextIndex.container = JSON.parse(json);
|
|
20
|
-
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
/* ignoring error and returning empty index */
|
|
23
|
-
}
|
|
24
|
-
return contextIndex;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @returns the JSON representation of the {@link ContextIndex} (like for saving to persistence)
|
|
28
|
-
*/
|
|
29
|
-
toJson() {
|
|
30
|
-
return JSON.stringify(this.container);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Notice that a context has been used and when it was used. This will update an existing record
|
|
34
|
-
* with the given timestamp, or create a new record if one doesn't exist.
|
|
35
|
-
* @param id of the corresponding context
|
|
36
|
-
* @param timestamp in millis since epoch
|
|
37
|
-
*/
|
|
38
|
-
notice(id, timestamp) {
|
|
39
|
-
const entry = this.container.index.find((it) => it.id === id);
|
|
40
|
-
if (entry === undefined) {
|
|
41
|
-
this.container.index.push({ id, timestamp });
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
entry.timestamp = timestamp;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Prune the index to the specified max size and then return the IDs
|
|
49
|
-
* @param maxContexts the maximum number of contexts to retain after this prune
|
|
50
|
-
* @returns an array of removed entries
|
|
51
|
-
*/
|
|
52
|
-
prune(maxContexts) {
|
|
53
|
-
const clampedMax = Math.max(maxContexts, 0); // clamp to [0, infinity)
|
|
54
|
-
if (this.container.index.length > clampedMax) {
|
|
55
|
-
// sort by timestamp so that older timestamps appear first in the array
|
|
56
|
-
this.container.index.sort((a, b) => a.timestamp - b.timestamp);
|
|
57
|
-
// delete the first N many elements above capacity. splice returns removed elements
|
|
58
|
-
return this.container.index.splice(0, this.container.index.length - clampedMax);
|
|
59
|
-
}
|
|
60
|
-
return [];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.default = ContextIndex;
|
|
64
|
-
//# sourceMappingURL=ContextIndex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContextIndex.js","sourceRoot":"","sources":["../../src/flag-manager/ContextIndex.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,MAAqB,YAAY;IAAjC;QACE,cAAS,GAAmB,EAAE,KAAK,EAAE,IAAI,KAAK,EAAc,EAAE,CAAC;IAuDjE,CAAC;IArDC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,IAAI;YACF,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC3C;QAAC,OAAO,CAAC,EAAE;YACV,8CAA8C;SAC/C;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,EAAU,EAAE,SAAiB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;SAC9C;aAAM;YACL,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;SAC7B;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAmB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACtE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE;YAC5C,uEAAuE;YACvE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/D,oFAAoF;YACpF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;SACjF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAxDD,+BAwDC"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const namespaceUtils_1 = require("../storage/namespaceUtils");
|
|
4
|
-
const FlagPersistence_1 = require("./FlagPersistence");
|
|
5
|
-
const FlagStore_1 = require("./FlagStore");
|
|
6
|
-
const FlagUpdater_1 = require("./FlagUpdater");
|
|
7
|
-
/**
|
|
8
|
-
* Top level manager of flags for the client. LDClient should be using this
|
|
9
|
-
* class and not any of the specific instances managed by it. Updates from
|
|
10
|
-
* data sources should be directed to the [init] and [upsert] methods of this
|
|
11
|
-
* class.
|
|
12
|
-
*/
|
|
13
|
-
class FlagManager {
|
|
14
|
-
/**
|
|
15
|
-
* @param platform implementation of various platform provided functionality
|
|
16
|
-
* @param sdkKey that will be used to distinguish different environments
|
|
17
|
-
* @param maxCachedContexts that specifies the max number of contexts that will be cached in persistence
|
|
18
|
-
* @param logger used for logging various messages
|
|
19
|
-
* @param timeStamper exists for testing purposes
|
|
20
|
-
*/
|
|
21
|
-
constructor(platform, sdkKey, maxCachedContexts, logger, timeStamper = () => Date.now()) {
|
|
22
|
-
this.timeStamper = timeStamper;
|
|
23
|
-
this.flagStore = new FlagStore_1.DefaultFlagStore();
|
|
24
|
-
const environmentNamespace = (0, namespaceUtils_1.namespaceForEnvironment)(platform.crypto, sdkKey);
|
|
25
|
-
this.flagUpdater = new FlagUpdater_1.default(this.flagStore, logger);
|
|
26
|
-
this.flagPersistence = new FlagPersistence_1.default(platform, environmentNamespace, maxCachedContexts, this.flagStore, this.flagUpdater, logger, timeStamper);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Attempts to get a flag by key from the current flags.
|
|
30
|
-
*/
|
|
31
|
-
get(key) {
|
|
32
|
-
return this.flagStore.get(key);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Gets all the current flags.
|
|
36
|
-
*/
|
|
37
|
-
getAll() {
|
|
38
|
-
return this.flagStore.getAll();
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Initializes the flag manager with data from a data source.
|
|
42
|
-
* Persistence initialization is handled by {@link FlagPersistence}
|
|
43
|
-
*/
|
|
44
|
-
async init(context, newFlags) {
|
|
45
|
-
return this.flagPersistence.init(context, newFlags);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Attempt to update a flag. If the flag is for the wrong context, or
|
|
49
|
-
* it is of an older version, then an update will not be performed.
|
|
50
|
-
*/
|
|
51
|
-
async upsert(context, key, item) {
|
|
52
|
-
return this.flagPersistence.upsert(context, key, item);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Asynchronously load cached values from persistence.
|
|
56
|
-
*/
|
|
57
|
-
async loadCached(context) {
|
|
58
|
-
return this.flagPersistence.loadCached(context);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Register a flag change callback.
|
|
62
|
-
*/
|
|
63
|
-
on(callback) {
|
|
64
|
-
this.flagUpdater.on(callback);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Unregister a flag change callback.
|
|
68
|
-
*/
|
|
69
|
-
off(callback) {
|
|
70
|
-
this.flagUpdater.off(callback);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
exports.default = FlagManager;
|
|
74
|
-
//# sourceMappingURL=FlagManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlagManager.js","sourceRoot":"","sources":["../../src/flag-manager/FlagManager.ts"],"names":[],"mappings":";;AAEA,8DAAoE;AACpE,uDAAgD;AAChD,2CAA+C;AAC/C,+CAAiE;AAGjE;;;;;GAKG;AACH,MAAqB,WAAW;IAK9B;;;;;;OAMG;IACH,YACE,QAAkB,EAClB,MAAc,EACd,iBAAyB,EACzB,MAAgB,EACC,cAA4B,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAA5C,gBAAW,GAAX,WAAW,CAAiC;QAhBvD,cAAS,GAAG,IAAI,4BAAgB,EAAE,CAAC;QAkBzC,MAAM,oBAAoB,GAAG,IAAA,wCAAuB,EAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE9E,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAe,CACxC,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,QAA2C;QACtE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,GAAW,EAAE,IAAoB;QAC9D,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,EAAE,CAAC,QAA6B;QAC9B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAA6B;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CACF;AAnFD,8BAmFC"}
|