@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.
Files changed (50) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/LDClientImpl.d.ts +18 -6
  3. package/dist/LDClientImpl.d.ts.map +1 -1
  4. package/dist/LDClientImpl.js +81 -25
  5. package/dist/LDClientImpl.js.map +1 -1
  6. package/dist/api/ConnectionMode.d.ts +15 -0
  7. package/dist/api/ConnectionMode.d.ts.map +1 -0
  8. package/dist/api/ConnectionMode.js +3 -0
  9. package/dist/api/ConnectionMode.js.map +1 -0
  10. package/dist/api/LDClient.d.ts +13 -5
  11. package/dist/api/LDClient.d.ts.map +1 -1
  12. package/dist/api/LDEmitter.d.ts +1 -1
  13. package/dist/api/LDEmitter.d.ts.map +1 -1
  14. package/dist/api/LDOptions.d.ts +35 -13
  15. package/dist/api/LDOptions.d.ts.map +1 -1
  16. package/dist/api/index.d.ts +2 -0
  17. package/dist/api/index.d.ts.map +1 -1
  18. package/dist/api/index.js.map +1 -1
  19. package/dist/configuration/Configuration.d.ts +9 -4
  20. package/dist/configuration/Configuration.d.ts.map +1 -1
  21. package/dist/configuration/Configuration.js +6 -3
  22. package/dist/configuration/Configuration.js.map +1 -1
  23. package/dist/configuration/validators.d.ts.map +1 -1
  24. package/dist/configuration/validators.js +14 -3
  25. package/dist/configuration/validators.js.map +1 -1
  26. package/dist/events/createEventProcessor.d.ts +3 -2
  27. package/dist/events/createEventProcessor.d.ts.map +1 -1
  28. package/dist/events/createEventProcessor.js +6 -3
  29. package/dist/events/createEventProcessor.js.map +1 -1
  30. package/dist/utils/addAutoEnv.d.ts +31 -0
  31. package/dist/utils/addAutoEnv.d.ts.map +1 -0
  32. package/dist/utils/addAutoEnv.js +112 -0
  33. package/dist/utils/addAutoEnv.js.map +1 -0
  34. package/dist/utils/calculateFlagChanges.d.ts +3 -0
  35. package/dist/utils/calculateFlagChanges.d.ts.map +1 -0
  36. package/dist/utils/calculateFlagChanges.js +23 -0
  37. package/dist/utils/calculateFlagChanges.js.map +1 -0
  38. package/dist/utils/ensureKey.d.ts +11 -0
  39. package/dist/utils/ensureKey.d.ts.map +1 -0
  40. package/dist/utils/ensureKey.js +69 -0
  41. package/dist/utils/ensureKey.js.map +1 -0
  42. package/dist/utils/getOrGenerateKey.d.ts +5 -0
  43. package/dist/utils/getOrGenerateKey.d.ts.map +1 -0
  44. package/dist/utils/getOrGenerateKey.js +29 -0
  45. package/dist/utils/getOrGenerateKey.js.map +1 -0
  46. package/dist/utils/index.d.ts +4 -2
  47. package/dist/utils/index.d.ts.map +1 -1
  48. package/dist/utils/index.js +7 -21
  49. package/dist/utils/index.js.map +1 -1
  50. 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;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAc,eAAe,SAAkC;IAC/D,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,gBAAgB,SAAS;IACzC,SAAgB,WAAW,SAAS;IACpC,SAAgB,UAAU,QAAQ;IAClC,SAAgB,aAAa,QAAQ;IACrC,SAAgB,SAAS,SAAS;IAElC,SAAgB,UAAU,EAAE,YAAY,EAAE,CAAM;IAChD,SAAgB,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAEjD,SAAgB,IAAI,EAAE,eAAe,CAAC;IACtC,SAAgB,WAAW,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,SAAgB,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACvD,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;IAe7F,qBAAqB,CAAC,eAAe,EAAE,SAAS,GAAG,MAAM,EAAE;CAqC5D"}
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.application, logger: this.logger });
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://sdk.launchdarkly.com';
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":"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"}
1
+ {"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAaxC,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,aAAa,CA6BtD,CAAC;AAEF,eAAe,UAAU,CAAC"}
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 u === 'localStorage' || typeof u === 'object' || typeof u === 'undefined' || u === null;
7
+ return typeof u === 'object' || typeof u === 'undefined' || u === null;
7
8
  }
8
9
  getType() {
9
- return `'localStorage' | LDFlagSet`;
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
- application: js_sdk_common_1.TypeValidators.Object,
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,cAAc,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC;IACjG,CAAC;IAED,OAAO;QACL,OAAO,4BAA4B,CAAC;IACtC,CAAC;CACF;AAED,MAAM,UAAU,GAA2C;IACzD,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,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,WAAW,EAAE,8BAAc,CAAC,MAAM;IAClC,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
+ {"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, subsystem } from '@launchdarkly/js-sdk-common';
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) => subsystem.LDEventProcessor;
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,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,QAAA,MAAM,oBAAoB,iBACV,MAAM,UACZ,aAAa,YACX,QAAQ,uBACG,SAAS,kBAAkB,KAC/C,UAAU,gBAQ0B,CAAC;AAExC,eAAe,oBAAoB,CAAC"}
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) => config.sendEvents
5
- ? 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)
6
- : new js_sdk_common_1.internal.NullEventProcessor();
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,+DAA2F;AAI3F,MAAM,oBAAoB,GAAG,CAC3B,YAAoB,EACpB,MAAqB,EACrB,QAAkB,EAClB,kBAAgD,EACpB,EAAE,CAC9B,MAAM,CAAC,UAAU;IACf,CAAC,CAAC,IAAI,wBAAQ,CAAC,cAAc,iCACpB,MAAM,KAAE,cAAc,EAAE,MAAM,CAAC,QAAQ,KAC5C,IAAI,6BAAa,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EACjD,SAAS,EACT,kBAAkB,CACnB;IACH,CAAC,CAAC,IAAI,wBAAQ,CAAC,kBAAkB,EAAE,CAAC;AAExC,kBAAe,oBAAoB,CAAC"}
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,3 @@
1
+ import { Flags } from '../types';
2
+ export default function calculateFlagChanges(flags: Flags, incomingFlags: Flags): string[];
3
+ //# sourceMappingURL=calculateFlagChanges.d.ts.map
@@ -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"}
@@ -1,3 +1,5 @@
1
- import { Flags } from '../types';
2
- export declare function calculateFlagChanges(flags: Flags, incomingFlags: Flags): string[];
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":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,YAmBtE"}
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"}
@@ -1,24 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateFlagChanges = void 0;
4
- const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
5
- // eslint-disable-next-line import/prefer-default-export
6
- function calculateFlagChanges(flags, incomingFlags) {
7
- const changedKeys = [];
8
- // flag deleted or updated
9
- Object.entries(flags).forEach(([k, f]) => {
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAI5D,wDAAwD;AACxD,SAAgB,oBAAoB,CAAC,KAAY,EAAE,aAAoB;IACrE,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,oDAmBC"}
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.2",
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.1.1"
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.1.0",
42
- "@typescript-eslint/parser": "^6.1.0",
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",