@launchdarkly/js-client-sdk-common 0.1.2 → 0.2.1
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 +31 -0
- package/dist/LDClientImpl.d.ts +18 -6
- package/dist/LDClientImpl.d.ts.map +1 -1
- package/dist/LDClientImpl.js +81 -25
- package/dist/LDClientImpl.js.map +1 -1
- package/dist/api/ConnectionMode.d.ts +15 -0
- package/dist/api/ConnectionMode.d.ts.map +1 -0
- package/dist/api/ConnectionMode.js +3 -0
- package/dist/api/ConnectionMode.js.map +1 -0
- package/dist/api/LDClient.d.ts +13 -5
- package/dist/api/LDClient.d.ts.map +1 -1
- package/dist/api/LDEmitter.d.ts +1 -1
- package/dist/api/LDEmitter.d.ts.map +1 -1
- package/dist/api/LDOptions.d.ts +35 -13
- 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/index.js.map +1 -1
- package/dist/configuration/Configuration.d.ts +9 -4
- package/dist/configuration/Configuration.d.ts.map +1 -1
- package/dist/configuration/Configuration.js +6 -3
- package/dist/configuration/Configuration.js.map +1 -1
- package/dist/configuration/validators.d.ts.map +1 -1
- package/dist/configuration/validators.js +14 -3
- package/dist/configuration/validators.js.map +1 -1
- package/dist/events/createEventProcessor.d.ts +3 -2
- package/dist/events/createEventProcessor.d.ts.map +1 -1
- package/dist/events/createEventProcessor.js +6 -3
- package/dist/events/createEventProcessor.js.map +1 -1
- package/dist/utils/addAutoEnv.d.ts +31 -0
- package/dist/utils/addAutoEnv.d.ts.map +1 -0
- package/dist/utils/addAutoEnv.js +112 -0
- package/dist/utils/addAutoEnv.js.map +1 -0
- package/dist/utils/calculateFlagChanges.d.ts +3 -0
- package/dist/utils/calculateFlagChanges.d.ts.map +1 -0
- package/dist/utils/calculateFlagChanges.js +23 -0
- package/dist/utils/calculateFlagChanges.js.map +1 -0
- package/dist/utils/ensureKey.d.ts +11 -0
- package/dist/utils/ensureKey.d.ts.map +1 -0
- package/dist/utils/ensureKey.js +69 -0
- package/dist/utils/ensureKey.js.map +1 -0
- package/dist/utils/getOrGenerateKey.d.ts +5 -0
- package/dist/utils/getOrGenerateKey.d.ts.map +1 -0
- package/dist/utils/getOrGenerateKey.js +29 -0
- package/dist/utils/getOrGenerateKey.js.map +1 -0
- package/dist/utils/index.d.ts +4 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -21
- package/dist/utils/index.js.map +1 -1
- package/package.json +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,QAAQ,EACR,SAAS,EAGT,gBAAgB,EAEjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,QAAQ,EACR,SAAS,EAGT,gBAAgB,EAEjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAc,eAAe,SAAwC;IACrE,OAAc,cAAc,SAA2C;IAEvE,SAAgB,MAAM,uGAAsB;IAE5C,SAAgB,OAAO,SAAiC;IACxD,SAAgB,SAAS,SAAmC;IAC5D,SAAgB,SAAS,SAAgC;IAEzD,SAAgB,QAAQ,OAAO;IAC/B,SAAgB,2BAA2B,OAAO;IAClD,SAAgB,aAAa,KAAK;IAClC,SAAgB,2BAA2B,KAAK;IAEhD,SAAgB,oBAAoB,SAAS;IAC7C,SAAgB,KAAK,SAAS;IAC9B,SAAgB,gBAAgB,SAAS;IACzC,SAAgB,UAAU,QAAQ;IAClC,SAAgB,aAAa,QAAQ;IAErC,SAAgB,SAAS,SAAS;IAClC,SAAgB,WAAW,SAAS;IAEpC,SAAgB,UAAU,EAAE,YAAY,EAAE,CAAM;IAChD,SAAgB,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAEjD,SAAgB,qBAAqB,EAAE,cAAc,CAAe;IAC7D,cAAc,EAAE,cAAc,CAAC;IAEtC,SAAgB,IAAI,EAAE,eAAe,CAAC;IACtC,SAAgB,eAAe,CAAC,EAAE;QAChC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAgB,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtC,SAAgB,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/F,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExC,SAAgB,gBAAgB,EAAE,gBAAgB,CAAC;IAGnD,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;gBAET,eAAe,GAAE,SAAc,EAAE,eAAe,GAAE,QAAQ,CAAC,iBAAsB;IAgB7F,qBAAqB,CAAC,eAAe,EAAE,SAAS,GAAG,MAAM,EAAE;CAqC5D"}
|
|
@@ -13,17 +13,20 @@ class Configuration {
|
|
|
13
13
|
this.flushInterval = 2;
|
|
14
14
|
this.streamInitialReconnectDelay = 1;
|
|
15
15
|
this.allAttributesPrivate = false;
|
|
16
|
+
this.debug = false;
|
|
16
17
|
this.diagnosticOptOut = false;
|
|
17
|
-
this.withReasons = false;
|
|
18
18
|
this.sendEvents = true;
|
|
19
19
|
this.sendLDHeaders = true;
|
|
20
20
|
this.useReport = false;
|
|
21
|
+
this.withReasons = false;
|
|
21
22
|
this.inspectors = [];
|
|
22
23
|
this.privateAttributes = [];
|
|
24
|
+
this.initialConnectionMode = 'streaming';
|
|
23
25
|
const errors = this.validateTypesAndNames(pristineOptions);
|
|
24
26
|
errors.forEach((e) => this.logger.warn(e));
|
|
25
27
|
this.serviceEndpoints = new js_sdk_common_1.ServiceEndpoints(this.streamUri, this.baseUri, this.eventsUri, internalOptions.analyticsEventPath, internalOptions.diagnosticEventPath, internalOptions.includeAuthorizationHeader);
|
|
26
|
-
this.tags = new js_sdk_common_1.ApplicationTags({ application: this.
|
|
28
|
+
this.tags = new js_sdk_common_1.ApplicationTags({ application: this.applicationInfo, logger: this.logger });
|
|
29
|
+
this.connectionMode = this.initialConnectionMode;
|
|
27
30
|
}
|
|
28
31
|
validateTypesAndNames(pristineOptions) {
|
|
29
32
|
const errors = [];
|
|
@@ -63,7 +66,7 @@ class Configuration {
|
|
|
63
66
|
return errors;
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
|
-
Configuration.DEFAULT_POLLING = 'https://
|
|
69
|
+
Configuration.DEFAULT_POLLING = 'https://clientsdk.launchdarkly.com';
|
|
67
70
|
Configuration.DEFAULT_STREAM = 'https://clientstream.launchdarkly.com';
|
|
68
71
|
exports.default = Configuration;
|
|
69
72
|
//# sourceMappingURL=Configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":";;AAAA,+DASqC;AAIrC,6CAAsC;AAEtC,MAAqB,aAAa;
|
|
1
|
+
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":";;AAAA,+DASqC;AAIrC,6CAAsC;AAEtC,MAAqB,aAAa;IAmDhC,YAAY,kBAA6B,EAAE,EAAE,kBAA8C,EAAE;QA/C7E,WAAM,GAAG,IAAA,gCAAgB,GAAE,CAAC;QAE5B,YAAO,GAAG,aAAa,CAAC,eAAe,CAAC;QACxC,cAAS,GAAG,gCAAgB,CAAC,cAAc,CAAC;QAC5C,cAAS,GAAG,aAAa,CAAC,cAAc,CAAC;QAEzC,aAAQ,GAAG,GAAG,CAAC;QACf,gCAA2B,GAAG,GAAG,CAAC;QAClC,kBAAa,GAAG,CAAC,CAAC;QAClB,gCAA2B,GAAG,CAAC,CAAC;QAEhC,yBAAoB,GAAG,KAAK,CAAC;QAC7B,UAAK,GAAG,KAAK,CAAC;QACd,qBAAgB,GAAG,KAAK,CAAC;QACzB,eAAU,GAAG,IAAI,CAAC;QAClB,kBAAa,GAAG,IAAI,CAAC;QAErB,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QAEpB,eAAU,GAAmB,EAAE,CAAC;QAChC,sBAAiB,GAAa,EAAE,CAAC;QAEjC,0BAAqB,GAAmB,WAAW,CAAC;QAyBlE,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gCAAgB,CAC1C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,eAAe,CAAC,kBAAkB,EAClC,eAAe,CAAC,mBAAmB,EACnC,eAAe,CAAC,0BAA0B,CAC3C,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,+BAAe,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;IACnD,CAAC;IAED,qBAAqB,CAAC,eAA0B;QAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACjD,MAAM,SAAS,GAAG,oBAAU,CAAC,CAAoB,CAAC,CAAC;YAEnD,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;oBACpB,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;oBAE1C,IAAI,aAAa,KAAK,SAAS,EAAE;wBAC/B,MAAM,CAAC,IAAI,CAAC,8BAAc,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACf;yBAAM,IAAI,aAAa,KAAK,4BAA4B,EAAE;wBACzD,MAAM,CAAC,IAAI,CAAC,8BAAc,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;wBAEhE,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,EAAE;4BACpE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBACf;qBACF;yBAAM,IAAI,SAAS,YAAY,iCAAiB,IAAI,8BAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;wBAChF,MAAM,EAAE,GAAG,EAAE,GAAG,SAA8B,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC,8BAAc,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC1D,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;qBACf;yBAAM;wBACL,MAAM,CAAC,IAAI,CAAC,8BAAc,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;qBAC/E;iBACF;qBAAM;oBACL,uDAAuD;oBACvD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,SAAS,CAAC;iBAC1B;aACF;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,8BAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;;AAtGa,6BAAe,GAAG,oCAAoC,AAAvC,CAAwC;AACvD,4BAAc,GAAG,uCAAuC,AAA1C,CAA2C;kBAFpD,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAuBxC,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,aAAa,CA+BtD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// eslint-disable-next-line max-classes-per-file
|
|
3
4
|
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
5
|
class BootStrapValidator {
|
|
5
6
|
is(u) {
|
|
6
|
-
return
|
|
7
|
+
return typeof u === 'object' || typeof u === 'undefined' || u === null;
|
|
7
8
|
}
|
|
8
9
|
getType() {
|
|
9
|
-
return `
|
|
10
|
+
return `LDFlagSet`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
class ConnectionModeValidator {
|
|
14
|
+
is(u) {
|
|
15
|
+
return u === 'offline' || u === 'streaming';
|
|
16
|
+
}
|
|
17
|
+
getType() {
|
|
18
|
+
return `'offline' | streaming`;
|
|
10
19
|
}
|
|
11
20
|
}
|
|
12
21
|
const validators = {
|
|
22
|
+
initialConnectionMode: new ConnectionModeValidator(),
|
|
13
23
|
logger: js_sdk_common_1.TypeValidators.Object,
|
|
14
24
|
baseUri: js_sdk_common_1.TypeValidators.String,
|
|
15
25
|
streamUri: js_sdk_common_1.TypeValidators.String,
|
|
@@ -19,6 +29,7 @@ const validators = {
|
|
|
19
29
|
flushInterval: js_sdk_common_1.TypeValidators.numberWithMin(2),
|
|
20
30
|
streamInitialReconnectDelay: js_sdk_common_1.TypeValidators.numberWithMin(0),
|
|
21
31
|
allAttributesPrivate: js_sdk_common_1.TypeValidators.Boolean,
|
|
32
|
+
debug: js_sdk_common_1.TypeValidators.Boolean,
|
|
22
33
|
diagnosticOptOut: js_sdk_common_1.TypeValidators.Boolean,
|
|
23
34
|
withReasons: js_sdk_common_1.TypeValidators.Boolean,
|
|
24
35
|
sendEvents: js_sdk_common_1.TypeValidators.Boolean,
|
|
@@ -28,7 +39,7 @@ const validators = {
|
|
|
28
39
|
name: '',
|
|
29
40
|
}),
|
|
30
41
|
privateAttributes: js_sdk_common_1.TypeValidators.StringArray,
|
|
31
|
-
|
|
42
|
+
applicationInfo: js_sdk_common_1.TypeValidators.Object,
|
|
32
43
|
bootstrap: new BootStrapValidator(),
|
|
33
44
|
wrapperName: js_sdk_common_1.TypeValidators.String,
|
|
34
45
|
wrapperVersion: js_sdk_common_1.TypeValidators.String,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":";;AAAA,+DAAkF;AAKlF,MAAM,kBAAkB;IACtB,EAAE,CAAC,CAAU;QACX,OAAO,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":";;AAAA,gDAAgD;AAChD,+DAAkF;AAKlF,MAAM,kBAAkB;IACtB,EAAE,CAAC,CAAU;QACX,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC;IACzE,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAED,MAAM,uBAAuB;IAC3B,EAAE,CAAC,CAAU;QACX,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,WAAW,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,OAAO,uBAAuB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,UAAU,GAA2C;IACzD,qBAAqB,EAAE,IAAI,uBAAuB,EAAE;IACpD,MAAM,EAAE,8BAAc,CAAC,MAAM;IAE7B,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,UAAU,EAAE,8BAAc,CAAC,eAAe,CAAe,gBAAgB,EAAE;QACzE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,oBAAI;QACZ,IAAI,EAAE,EAAE;KACT,CAAC;IACF,iBAAiB,EAAE,8BAAc,CAAC,WAAW;IAE7C,eAAe,EAAE,8BAAc,CAAC,MAAM;IACtC,SAAS,EAAE,IAAI,kBAAkB,EAAE;IACnC,WAAW,EAAE,8BAAc,CAAC,MAAM;IAClC,cAAc,EAAE,8BAAc,CAAC,MAAM;IACrC,IAAI,EAAE,8BAAc,CAAC,MAAM;CAC5B,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { internal, Platform
|
|
1
|
+
import { internal, Platform } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
import { EventProcessor } from '@launchdarkly/js-sdk-common/dist/internal';
|
|
2
3
|
import Configuration from '../configuration';
|
|
3
|
-
declare const createEventProcessor: (clientSideID: string, config: Configuration, platform: Platform, diagnosticsManager?: internal.DiagnosticsManager) =>
|
|
4
|
+
declare const createEventProcessor: (clientSideID: string, config: Configuration, platform: Platform, diagnosticsManager?: internal.DiagnosticsManager, start?: boolean) => EventProcessor | undefined;
|
|
4
5
|
export default createEventProcessor;
|
|
5
6
|
//# sourceMappingURL=createEventProcessor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEventProcessor.d.ts","sourceRoot":"","sources":["../../src/events/createEventProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"createEventProcessor.d.ts","sourceRoot":"","sources":["../../src/events/createEventProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,QAAA,MAAM,oBAAoB,iBACV,MAAM,UACZ,aAAa,YACX,QAAQ,uBACG,SAAS,kBAAkB,UACzC,OAAO,KACb,cAAc,GAAG,SAYnB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
|
-
const createEventProcessor = (clientSideID, config, platform, diagnosticsManager) =>
|
|
5
|
-
|
|
6
|
-
|
|
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
|
+
};
|
|
7
10
|
exports.default = createEventProcessor;
|
|
8
11
|
//# sourceMappingURL=createEventProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEventProcessor.js","sourceRoot":"","sources":["../../src/events/createEventProcessor.ts"],"names":[],"mappings":";;AAAA,+
|
|
1
|
+
{"version":3,"file":"createEventProcessor.js","sourceRoot":"","sources":["../../src/events/createEventProcessor.ts"],"names":[],"mappings":";;AAAA,+DAAgF;AAKhF,MAAM,oBAAoB,GAAG,CAC3B,YAAoB,EACpB,MAAqB,EACrB,QAAkB,EAClB,kBAAgD,EAChD,QAAiB,KAAK,EACM,EAAE;IAC9B,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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LDApplication, LDContext, LDDevice, LDMultiKindContext, LDSingleKindContext, LDUser, Platform } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
import Configuration from '../configuration';
|
|
3
|
+
export declare const toMulti: (c: LDSingleKindContext) => {
|
|
4
|
+
[x: string]: string | {
|
|
5
|
+
[attribute: string]: any;
|
|
6
|
+
key: string;
|
|
7
|
+
name?: string | undefined;
|
|
8
|
+
_meta?: import("@launchdarkly/js-sdk-common").LDContextMeta | undefined;
|
|
9
|
+
anonymous?: boolean | undefined;
|
|
10
|
+
};
|
|
11
|
+
kind: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Clones the LDApplication object and populates the key, envAttributesVersion, id and version fields.
|
|
15
|
+
*
|
|
16
|
+
* @param crypto
|
|
17
|
+
* @param info
|
|
18
|
+
* @param applicationInfo
|
|
19
|
+
* @param config
|
|
20
|
+
* @return An LDApplication object with populated key, envAttributesVersion, id and version.
|
|
21
|
+
*/
|
|
22
|
+
export declare const addApplicationInfo: ({ crypto, info }: Platform, { applicationInfo }: Configuration) => LDApplication | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Clones the LDDevice object and populates the key and envAttributesVersion field.
|
|
25
|
+
*
|
|
26
|
+
* @param platform
|
|
27
|
+
* @return An LDDevice object with populated key and envAttributesVersion.
|
|
28
|
+
*/
|
|
29
|
+
export declare const addDeviceInfo: (platform: Platform) => Promise<LDDevice | undefined>;
|
|
30
|
+
export declare const addAutoEnv: (context: LDContext, platform: Platform, config: Configuration) => Promise<LDMultiKindContext | LDSingleKindContext | LDUser>;
|
|
31
|
+
//# sourceMappingURL=addAutoEnv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAutoEnv.d.ts","sourceRoot":"","sources":["../../src/utils/addAutoEnv.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,EACb,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACT,MAAM,6BAA6B,CAAC;AAErC,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAM7C,eAAO,MAAM,OAAO,MAAO,mBAAmB;;;;;;;;;CAO7C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,qBACX,QAAQ,uBACL,aAAa,KACjC,aAAa,GAAG,SA4BlB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aAAoB,QAAQ,kCA0BrD,CAAC;AAEF,eAAO,MAAM,UAAU,YAAmB,SAAS,YAAY,QAAQ,UAAU,aAAa,+DA2C7F,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
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("./getOrGenerateKey");
|
|
18
|
+
const { isLegacyUser, isSingleKind, isMultiKind } = js_sdk_common_1.internal;
|
|
19
|
+
const defaultAutoEnvSchemaVersion = '1.0';
|
|
20
|
+
const toMulti = (c) => {
|
|
21
|
+
const { kind } = c, contextCommon = __rest(c, ["kind"]);
|
|
22
|
+
return {
|
|
23
|
+
kind: 'multi',
|
|
24
|
+
[kind]: contextCommon,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
exports.toMulti = toMulti;
|
|
28
|
+
/**
|
|
29
|
+
* Clones the LDApplication object and populates the key, envAttributesVersion, id and version fields.
|
|
30
|
+
*
|
|
31
|
+
* @param crypto
|
|
32
|
+
* @param info
|
|
33
|
+
* @param applicationInfo
|
|
34
|
+
* @param config
|
|
35
|
+
* @return An LDApplication object with populated key, envAttributesVersion, id and version.
|
|
36
|
+
*/
|
|
37
|
+
const addApplicationInfo = ({ crypto, info }, { applicationInfo }) => {
|
|
38
|
+
var _a;
|
|
39
|
+
const { ld_application } = info.platformData();
|
|
40
|
+
let app = (_a = (0, js_sdk_common_1.deepCompact)(ld_application)) !== null && _a !== void 0 ? _a : {};
|
|
41
|
+
const id = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.id) || (app === null || app === void 0 ? void 0 : app.id);
|
|
42
|
+
if (id) {
|
|
43
|
+
const version = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.version) || (app === null || app === void 0 ? void 0 : app.version);
|
|
44
|
+
const name = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.name) || (app === null || app === void 0 ? void 0 : app.name);
|
|
45
|
+
const versionName = (applicationInfo === null || applicationInfo === void 0 ? void 0 : applicationInfo.versionName) || (app === null || app === void 0 ? void 0 : app.versionName);
|
|
46
|
+
app = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, app), { id }), (version ? { version } : {})), (name ? { name } : {})), (versionName ? { versionName } : {}));
|
|
47
|
+
const hasher = crypto.createHash('sha256');
|
|
48
|
+
hasher.update(id);
|
|
49
|
+
app.key = hasher.digest('base64');
|
|
50
|
+
app.envAttributesVersion = app.envAttributesVersion || defaultAutoEnvSchemaVersion;
|
|
51
|
+
return app;
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
};
|
|
55
|
+
exports.addApplicationInfo = addApplicationInfo;
|
|
56
|
+
/**
|
|
57
|
+
* Clones the LDDevice object and populates the key and envAttributesVersion field.
|
|
58
|
+
*
|
|
59
|
+
* @param platform
|
|
60
|
+
* @return An LDDevice object with populated key and envAttributesVersion.
|
|
61
|
+
*/
|
|
62
|
+
const addDeviceInfo = async (platform) => {
|
|
63
|
+
var _a, _b, _c, _d;
|
|
64
|
+
const { ld_device, os } = platform.info.platformData();
|
|
65
|
+
const device = (_a = (0, js_sdk_common_1.deepCompact)(ld_device)) !== null && _a !== void 0 ? _a : {};
|
|
66
|
+
const name = (os === null || os === void 0 ? void 0 : os.name) || ((_b = device.os) === null || _b === void 0 ? void 0 : _b.name);
|
|
67
|
+
const version = (os === null || os === void 0 ? void 0 : os.version) || ((_c = device.os) === null || _c === void 0 ? void 0 : _c.version);
|
|
68
|
+
const family = (_d = device.os) === null || _d === void 0 ? void 0 : _d.family;
|
|
69
|
+
// only add device.os if there's data
|
|
70
|
+
if (name || version || family) {
|
|
71
|
+
device.os = Object.assign(Object.assign(Object.assign({}, (name ? { name } : {})), (version ? { version } : {})), (family ? { family } : {}));
|
|
72
|
+
}
|
|
73
|
+
// Check if device has any meaningful data before we return it.
|
|
74
|
+
if (Object.keys(device).filter((k) => k !== 'key' && k !== 'envAttributesVersion').length) {
|
|
75
|
+
device.key = await (0, getOrGenerateKey_1.getOrGenerateKey)('context', 'ld_device', platform);
|
|
76
|
+
device.envAttributesVersion = device.envAttributesVersion || defaultAutoEnvSchemaVersion;
|
|
77
|
+
return device;
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
};
|
|
81
|
+
exports.addDeviceInfo = addDeviceInfo;
|
|
82
|
+
const addAutoEnv = async (context, platform, config) => {
|
|
83
|
+
// LDUser is not supported for auto env reporting
|
|
84
|
+
if (isLegacyUser(context)) {
|
|
85
|
+
return context;
|
|
86
|
+
}
|
|
87
|
+
let ld_application;
|
|
88
|
+
let ld_device;
|
|
89
|
+
// Check if customer contexts exist. Only override if they are not provided.
|
|
90
|
+
if ((isSingleKind(context) && context.kind !== 'ld_application') ||
|
|
91
|
+
(isMultiKind(context) && !context.ld_application)) {
|
|
92
|
+
ld_application = (0, exports.addApplicationInfo)(platform, config);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
config.logger.warn('Not adding ld_application environment attributes because it already exists.');
|
|
96
|
+
}
|
|
97
|
+
if ((isSingleKind(context) && context.kind !== 'ld_device') ||
|
|
98
|
+
(isMultiKind(context) && !context.ld_device)) {
|
|
99
|
+
ld_device = await (0, exports.addDeviceInfo)(platform);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
config.logger.warn('Not adding ld_device environment attributes because it already exists.');
|
|
103
|
+
}
|
|
104
|
+
// Unable to automatically add environment attributes for kind: {}. {} already exists.
|
|
105
|
+
if (ld_application || ld_device) {
|
|
106
|
+
const multi = isSingleKind(context) ? (0, exports.toMulti)(context) : context;
|
|
107
|
+
return Object.assign(Object.assign(Object.assign({}, multi), (ld_application ? { ld_application } : {})), (ld_device ? { ld_device } : {}));
|
|
108
|
+
}
|
|
109
|
+
return context;
|
|
110
|
+
};
|
|
111
|
+
exports.addAutoEnv = addAutoEnv;
|
|
112
|
+
//# sourceMappingURL=addAutoEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAutoEnv.js","sourceRoot":"","sources":["../../src/utils/addAutoEnv.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateFlagChanges.d.ts","sourceRoot":"","sources":["../../src/utils/calculateFlagChanges.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,YAmB9E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
4
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
5
|
+
function calculateFlagChanges(flags, incomingFlags) {
|
|
6
|
+
const changedKeys = [];
|
|
7
|
+
// flag deleted or updated
|
|
8
|
+
Object.entries(flags).forEach(([k, f]) => {
|
|
9
|
+
const incoming = incomingFlags[k];
|
|
10
|
+
if (!incoming || !(0, js_sdk_common_1.fastDeepEqual)(f, incoming)) {
|
|
11
|
+
changedKeys.push(k);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
// flag added
|
|
15
|
+
Object.keys(incomingFlags).forEach((k) => {
|
|
16
|
+
if (!flags[k]) {
|
|
17
|
+
changedKeys.push(k);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
return changedKeys;
|
|
21
|
+
}
|
|
22
|
+
exports.default = calculateFlagChanges;
|
|
23
|
+
//# sourceMappingURL=calculateFlagChanges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateFlagChanges.js","sourceRoot":"","sources":["../../src/utils/calculateFlagChanges.ts"],"names":[],"mappings":";;AAAA,+DAA4D;AAI5D,wDAAwD;AACxD,SAAwB,oBAAoB,CAAC,KAAY,EAAE,aAAoB;IAC7E,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,0BAA0B;IAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,6BAAa,EAAC,CAAC,EAAE,QAAQ,CAAC,EAAE;YAC5C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACb,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAnBD,uCAmBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LDContext, Platform } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
/**
|
|
3
|
+
* Ensure a key is always present in anonymous contexts. Non-anonymous contexts
|
|
4
|
+
* are not processed and will just be returned as is.
|
|
5
|
+
*
|
|
6
|
+
* @param context
|
|
7
|
+
* @param platform
|
|
8
|
+
*/
|
|
9
|
+
declare const ensureKey: (context: LDContext, platform: Platform) => Promise<any>;
|
|
10
|
+
export default ensureKey;
|
|
11
|
+
//# sourceMappingURL=ensureKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensureKey.d.ts","sourceRoot":"","sources":["../../src/utils/ensureKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAKT,QAAQ,EACT,MAAM,6BAA6B,CAAC;AA+CrC;;;;;;GAMG;AACH,QAAA,MAAM,SAAS,YAAmB,SAAS,YAAY,QAAQ,iBAgB9D,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
|
|
15
|
+
const getOrGenerateKey_1 = require("./getOrGenerateKey");
|
|
16
|
+
const { isLegacyUser, isMultiKind, isSingleKind } = js_sdk_common_1.internal;
|
|
17
|
+
/**
|
|
18
|
+
* This is the root ensureKey function. All other ensureKey functions reduce to this.
|
|
19
|
+
*
|
|
20
|
+
* - ensureKeyCommon // private root function
|
|
21
|
+
* - ensureKeySingle
|
|
22
|
+
* - ensureKeyMulti
|
|
23
|
+
* - ensureKeyLegacy
|
|
24
|
+
* - ensureKey // exported for external use
|
|
25
|
+
*
|
|
26
|
+
* @param kind The LDContext kind
|
|
27
|
+
* @param c The LDContext object
|
|
28
|
+
* @param platform Platform containing crypto and storage needed for storing and querying keys.
|
|
29
|
+
*/
|
|
30
|
+
const ensureKeyCommon = async (kind, c, platform) => {
|
|
31
|
+
const { anonymous, key } = c;
|
|
32
|
+
if (anonymous && !key) {
|
|
33
|
+
// This mutates a cloned copy of the original context from ensureyKey so this is safe.
|
|
34
|
+
// eslint-disable-next-line no-param-reassign
|
|
35
|
+
c.key = await (0, getOrGenerateKey_1.getOrGenerateKey)('anonymous', kind, platform);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const ensureKeySingle = async (c, platform) => {
|
|
39
|
+
await ensureKeyCommon(c.kind, c, platform);
|
|
40
|
+
};
|
|
41
|
+
const ensureKeyMulti = async (multiContext, platform) => {
|
|
42
|
+
const { kind } = multiContext, singleContexts = __rest(multiContext, ["kind"]);
|
|
43
|
+
return Promise.all(Object.entries(singleContexts).map(([k, c]) => ensureKeyCommon(k, c, platform)));
|
|
44
|
+
};
|
|
45
|
+
const ensureKeyLegacy = async (c, platform) => {
|
|
46
|
+
await ensureKeyCommon('user', c, platform);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Ensure a key is always present in anonymous contexts. Non-anonymous contexts
|
|
50
|
+
* are not processed and will just be returned as is.
|
|
51
|
+
*
|
|
52
|
+
* @param context
|
|
53
|
+
* @param platform
|
|
54
|
+
*/
|
|
55
|
+
const ensureKey = async (context, platform) => {
|
|
56
|
+
const cloned = (0, js_sdk_common_1.clone)(context);
|
|
57
|
+
if (isSingleKind(cloned)) {
|
|
58
|
+
await ensureKeySingle(cloned, platform);
|
|
59
|
+
}
|
|
60
|
+
if (isMultiKind(cloned)) {
|
|
61
|
+
await ensureKeyMulti(cloned, platform);
|
|
62
|
+
}
|
|
63
|
+
if (isLegacyUser(cloned)) {
|
|
64
|
+
await ensureKeyLegacy(cloned, platform);
|
|
65
|
+
}
|
|
66
|
+
return cloned;
|
|
67
|
+
};
|
|
68
|
+
exports.default = ensureKey;
|
|
69
|
+
//# sourceMappingURL=ensureKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensureKey.js","sourceRoot":"","sources":["../../src/utils/ensureKey.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+DASqC;AAErC,yDAAsD;AAEtD,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,sFAAsF;QACtF,6CAA6C;QAC7C,CAAC,CAAC,GAAG,GAAG,MAAM,IAAA,mCAAgB,EAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC7D;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;AACH,MAAM,SAAS,GAAG,KAAK,EAAE,OAAkB,EAAE,QAAkB,EAAE,EAAE;IACjE,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;AAEF,kBAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Platform } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
export type Namespace = 'anonymous' | 'context';
|
|
3
|
+
export declare const prefixNamespace: (namespace: Namespace, s: string) => string;
|
|
4
|
+
export declare const getOrGenerateKey: (namespace: Namespace, contextKind: string, { crypto, storage }: Platform) => Promise<string>;
|
|
5
|
+
//# sourceMappingURL=getOrGenerateKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrGenerateKey.d.ts","sourceRoot":"","sources":["../../src/utils/getOrGenerateKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAEhD,eAAO,MAAM,eAAe,cAAe,SAAS,KAAK,MAAM,WAiB9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAChB,SAAS,eACP,MAAM,uBACE,QAAQ,oBAW9B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrGenerateKey = exports.prefixNamespace = void 0;
|
|
4
|
+
const prefixNamespace = (namespace, s) => {
|
|
5
|
+
let n;
|
|
6
|
+
switch (namespace) {
|
|
7
|
+
case 'anonymous':
|
|
8
|
+
n = 'LaunchDarkly_AnonymousKeys_';
|
|
9
|
+
break;
|
|
10
|
+
case 'context':
|
|
11
|
+
n = 'LaunchDarkly_ContextKeys_';
|
|
12
|
+
break;
|
|
13
|
+
default:
|
|
14
|
+
throw new Error(`Unsupported namespace ${namespace}. Only 'anonymous' or 'context' are supported.`);
|
|
15
|
+
}
|
|
16
|
+
return `${n}${s}`;
|
|
17
|
+
};
|
|
18
|
+
exports.prefixNamespace = prefixNamespace;
|
|
19
|
+
const getOrGenerateKey = async (namespace, contextKind, { crypto, storage }) => {
|
|
20
|
+
const storageKey = (0, exports.prefixNamespace)(namespace, contextKind);
|
|
21
|
+
let contextKey = await (storage === null || storage === void 0 ? void 0 : storage.get(storageKey));
|
|
22
|
+
if (!contextKey) {
|
|
23
|
+
contextKey = crypto.randomUUID();
|
|
24
|
+
await (storage === null || storage === void 0 ? void 0 : storage.set(storageKey, contextKey));
|
|
25
|
+
}
|
|
26
|
+
return contextKey;
|
|
27
|
+
};
|
|
28
|
+
exports.getOrGenerateKey = getOrGenerateKey;
|
|
29
|
+
//# sourceMappingURL=getOrGenerateKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrGenerateKey.js","sourceRoot":"","sources":["../../src/utils/getOrGenerateKey.ts"],"names":[],"mappings":";;;AAIO,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAE,CAAS,EAAE,EAAE;IACjE,IAAI,CAAS,CAAC;IAEd,QAAQ,SAAS,EAAE;QACjB,KAAK,WAAW;YACd,CAAC,GAAG,6BAA6B,CAAC;YAClC,MAAM;QACR,KAAK,SAAS;YACZ,CAAC,GAAG,2BAA2B,CAAC;YAChC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CACb,yBAAyB,SAAS,gDAAgD,CACnF,CAAC;KACL;IAED,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACpB,CAAC,CAAC;AAjBW,QAAA,eAAe,mBAiB1B;AAEK,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAoB,EACpB,WAAmB,EACnB,EAAE,MAAM,EAAE,OAAO,EAAY,EAC7B,EAAE;IACF,MAAM,UAAU,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3D,IAAI,UAAU,GAAG,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,UAAU,CAAC,CAAA,CAAC;IAEhD,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA,CAAC;KAC5C;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { addAutoEnv } from './addAutoEnv';
|
|
2
|
+
import calculateFlagChanges from './calculateFlagChanges';
|
|
3
|
+
import ensureKey from './ensureKey';
|
|
4
|
+
export { calculateFlagChanges, ensureKey, addAutoEnv };
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateFlagChanges = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const incoming = incomingFlags[k];
|
|
11
|
-
if (!incoming || !(0, js_sdk_common_1.fastDeepEqual)(f, incoming)) {
|
|
12
|
-
changedKeys.push(k);
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
// flag added
|
|
16
|
-
Object.keys(incomingFlags).forEach((k) => {
|
|
17
|
-
if (!flags[k]) {
|
|
18
|
-
changedKeys.push(k);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
return changedKeys;
|
|
22
|
-
}
|
|
23
|
-
exports.calculateFlagChanges = calculateFlagChanges;
|
|
3
|
+
exports.addAutoEnv = exports.ensureKey = exports.calculateFlagChanges = void 0;
|
|
4
|
+
const addAutoEnv_1 = require("./addAutoEnv");
|
|
5
|
+
Object.defineProperty(exports, "addAutoEnv", { enumerable: true, get: function () { return addAutoEnv_1.addAutoEnv; } });
|
|
6
|
+
const calculateFlagChanges_1 = require("./calculateFlagChanges");
|
|
7
|
+
exports.calculateFlagChanges = calculateFlagChanges_1.default;
|
|
8
|
+
const ensureKey_1 = require("./ensureKey");
|
|
9
|
+
exports.ensureKey = ensureKey_1.default;
|
|
24
10
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAIA,2FAJjC,uBAAU,OAIiC;AAHpD,iEAA0D;AAGjD,+BAHF,8BAAoB,CAGE;AAF7B,2CAAoC;AAEL,oBAFxB,mBAAS,CAEwB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@launchdarkly/js-client-sdk-common",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"license": "Apache-2.0",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@launchdarkly/js-sdk-common": "2.
|
|
33
|
+
"@launchdarkly/js-sdk-common": "2.2.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@launchdarkly/private-js-mocks": "0.0.1",
|
|
@@ -38,13 +38,14 @@
|
|
|
38
38
|
"@testing-library/jest-dom": "^5.16.5",
|
|
39
39
|
"@types/jest": "^29.5.3",
|
|
40
40
|
"@types/semver": "^7.5.0",
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
42
|
-
"@typescript-eslint/parser": "^6.
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^6.20.0",
|
|
42
|
+
"@typescript-eslint/parser": "^6.20.0",
|
|
43
43
|
"eslint": "^8.45.0",
|
|
44
44
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
45
45
|
"eslint-config-airbnb-typescript": "^17.1.0",
|
|
46
46
|
"eslint-config-prettier": "^8.8.0",
|
|
47
47
|
"eslint-plugin-import": "^2.27.5",
|
|
48
|
+
"eslint-plugin-jest": "^27.6.3",
|
|
48
49
|
"eslint-plugin-prettier": "^5.0.0",
|
|
49
50
|
"jest": "^29.6.1",
|
|
50
51
|
"jest-diff": "^29.6.1",
|