@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.
Files changed (129) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/DataManager.d.ts +64 -0
  3. package/dist/DataManager.d.ts.map +1 -0
  4. package/dist/HookRunner.d.ts +12 -0
  5. package/dist/HookRunner.d.ts.map +1 -0
  6. package/dist/LDClientImpl.d.ts +14 -48
  7. package/dist/LDClientImpl.d.ts.map +1 -1
  8. package/dist/LDEmitter.d.ts +13 -1
  9. package/dist/LDEmitter.d.ts.map +1 -1
  10. package/dist/api/LDClient.d.ts +13 -14
  11. package/dist/api/LDClient.d.ts.map +1 -1
  12. package/dist/api/LDOptions.d.ts +28 -12
  13. package/dist/api/LDOptions.d.ts.map +1 -1
  14. package/dist/api/index.d.ts +2 -0
  15. package/dist/api/index.d.ts.map +1 -1
  16. package/dist/api/integrations/Hooks.d.ts +133 -0
  17. package/dist/api/integrations/Hooks.d.ts.map +1 -0
  18. package/dist/api/integrations/index.d.ts +2 -0
  19. package/dist/api/integrations/index.d.ts.map +1 -0
  20. package/dist/configuration/Configuration.d.ts +59 -19
  21. package/dist/configuration/Configuration.d.ts.map +1 -1
  22. package/dist/configuration/index.d.ts +2 -2
  23. package/dist/configuration/index.d.ts.map +1 -1
  24. package/dist/configuration/validators.d.ts.map +1 -1
  25. package/dist/context/addAutoEnv.d.ts +3 -3
  26. package/dist/context/addAutoEnv.d.ts.map +1 -1
  27. package/dist/crypto/digest.d.ts +3 -0
  28. package/dist/crypto/digest.d.ts.map +1 -0
  29. package/dist/datasource/DataSourceEventHandler.d.ts +16 -0
  30. package/dist/datasource/DataSourceEventHandler.d.ts.map +1 -0
  31. package/dist/datasource/DataSourceStatus.d.ts +39 -0
  32. package/dist/datasource/DataSourceStatus.d.ts.map +1 -0
  33. package/dist/datasource/DataSourceStatusErrorInfo.d.ts +8 -0
  34. package/dist/datasource/DataSourceStatusErrorInfo.d.ts.map +1 -0
  35. package/dist/datasource/DataSourceStatusManager.d.ts +40 -0
  36. package/dist/datasource/DataSourceStatusManager.d.ts.map +1 -0
  37. package/dist/diagnostics/createDiagnosticsInitConfig.d.ts +1 -1
  38. package/dist/diagnostics/createDiagnosticsInitConfig.d.ts.map +1 -1
  39. package/dist/diagnostics/createDiagnosticsManager.d.ts +1 -1
  40. package/dist/diagnostics/createDiagnosticsManager.d.ts.map +1 -1
  41. package/dist/events/createEventProcessor.d.ts +3 -3
  42. package/dist/events/createEventProcessor.d.ts.map +1 -1
  43. package/dist/flag-manager/FlagManager.d.ts +39 -15
  44. package/dist/flag-manager/FlagManager.d.ts.map +1 -1
  45. package/dist/flag-manager/FlagPersistence.d.ts +2 -1
  46. package/dist/flag-manager/FlagPersistence.d.ts.map +1 -1
  47. package/dist/flag-manager/FlagStore.d.ts.map +1 -1
  48. package/dist/index.cjs +1686 -0
  49. package/dist/index.cjs.map +1 -0
  50. package/dist/index.d.ts +16 -2
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.mjs +1659 -0
  53. package/dist/index.mjs.map +1 -0
  54. package/dist/polling/PollingProcessor.d.ts.map +1 -1
  55. package/dist/polling/Requestor.d.ts +16 -1
  56. package/dist/polling/Requestor.d.ts.map +1 -1
  57. package/dist/storage/namespaceUtils.d.ts +7 -7
  58. package/dist/storage/namespaceUtils.d.ts.map +1 -1
  59. package/dist/streaming/DataSourceConfig.d.ts +24 -0
  60. package/dist/streaming/DataSourceConfig.d.ts.map +1 -0
  61. package/dist/streaming/StreamingProcessor.d.ts +33 -0
  62. package/dist/streaming/StreamingProcessor.d.ts.map +1 -0
  63. package/dist/streaming/index.d.ts +4 -0
  64. package/dist/streaming/index.d.ts.map +1 -0
  65. package/dist/types/index.d.ts +3 -3
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/package.json +18 -7
  68. package/dist/LDClientImpl.js +0 -460
  69. package/dist/LDClientImpl.js.map +0 -1
  70. package/dist/LDEmitter.js +0 -64
  71. package/dist/LDEmitter.js.map +0 -1
  72. package/dist/api/ConnectionMode.js +0 -3
  73. package/dist/api/ConnectionMode.js.map +0 -1
  74. package/dist/api/LDClient.js +0 -3
  75. package/dist/api/LDClient.js.map +0 -1
  76. package/dist/api/LDEvaluationDetail.js +0 -3
  77. package/dist/api/LDEvaluationDetail.js.map +0 -1
  78. package/dist/api/LDIdentifyOptions.js +0 -3
  79. package/dist/api/LDIdentifyOptions.js.map +0 -1
  80. package/dist/api/LDOptions.js +0 -3
  81. package/dist/api/LDOptions.js.map +0 -1
  82. package/dist/api/index.js +0 -20
  83. package/dist/api/index.js.map +0 -1
  84. package/dist/configuration/Configuration.js +0 -73
  85. package/dist/configuration/Configuration.js.map +0 -1
  86. package/dist/configuration/index.js +0 -5
  87. package/dist/configuration/index.js.map +0 -1
  88. package/dist/configuration/validators.js +0 -37
  89. package/dist/configuration/validators.js.map +0 -1
  90. package/dist/context/addAutoEnv.js +0 -114
  91. package/dist/context/addAutoEnv.js.map +0 -1
  92. package/dist/context/ensureKey.js +0 -72
  93. package/dist/context/ensureKey.js.map +0 -1
  94. package/dist/diagnostics/createDiagnosticsInitConfig.js +0 -19
  95. package/dist/diagnostics/createDiagnosticsInitConfig.js.map +0 -1
  96. package/dist/diagnostics/createDiagnosticsManager.js +0 -12
  97. package/dist/diagnostics/createDiagnosticsManager.js.map +0 -1
  98. package/dist/evaluation/evaluationDetail.js +0 -20
  99. package/dist/evaluation/evaluationDetail.js.map +0 -1
  100. package/dist/events/EventFactory.js +0 -25
  101. package/dist/events/EventFactory.js.map +0 -1
  102. package/dist/events/createEventProcessor.js +0 -11
  103. package/dist/events/createEventProcessor.js.map +0 -1
  104. package/dist/flag-manager/ContextIndex.js +0 -64
  105. package/dist/flag-manager/ContextIndex.js.map +0 -1
  106. package/dist/flag-manager/FlagManager.js +0 -74
  107. package/dist/flag-manager/FlagManager.js.map +0 -1
  108. package/dist/flag-manager/FlagPersistence.js +0 -120
  109. package/dist/flag-manager/FlagPersistence.js.map +0 -1
  110. package/dist/flag-manager/FlagStore.js +0 -28
  111. package/dist/flag-manager/FlagStore.js.map +0 -1
  112. package/dist/flag-manager/FlagUpdater.js +0 -69
  113. package/dist/flag-manager/FlagUpdater.js.map +0 -1
  114. package/dist/flag-manager/ItemDescriptor.js +0 -3
  115. package/dist/flag-manager/ItemDescriptor.js.map +0 -1
  116. package/dist/flag-manager/calculateChangedKeys.js +0 -22
  117. package/dist/flag-manager/calculateChangedKeys.js.map +0 -1
  118. package/dist/index.js +0 -22
  119. package/dist/index.js.map +0 -1
  120. package/dist/polling/PollingProcessor.js +0 -79
  121. package/dist/polling/PollingProcessor.js.map +0 -1
  122. package/dist/polling/Requestor.js +0 -50
  123. package/dist/polling/Requestor.js.map +0 -1
  124. package/dist/storage/getOrGenerateKey.js +0 -21
  125. package/dist/storage/getOrGenerateKey.js.map +0 -1
  126. package/dist/storage/namespaceUtils.js +0 -61
  127. package/dist/storage/namespaceUtils.js.map +0 -1
  128. package/dist/types/index.js +0 -3
  129. package/dist/types/index.js.map +0 -1
@@ -1,26 +1,63 @@
1
- import { ApplicationTags, internal, LDFlagSet, ServiceEndpoints } from '@launchdarkly/js-sdk-common';
2
- import { ConnectionMode, type LDOptions } from '../api';
3
- export default class Configuration {
4
- static DEFAULT_POLLING: string;
5
- static DEFAULT_STREAM: string;
6
- readonly logger: import("@launchdarkly/js-sdk-common").BasicLogger | import("@launchdarkly/js-sdk-common").SafeLogger;
7
- readonly baseUri: string;
8
- readonly eventsUri: string;
9
- readonly streamUri: string;
1
+ import { ApplicationTags, internal, LDFlagSet, LDLogger, ServiceEndpoints } from '@launchdarkly/js-sdk-common';
2
+ import { Hook, type LDOptions } from '../api';
3
+ export interface LDClientInternalOptions extends internal.LDInternalOptions {
4
+ trackEventModifier?: (event: internal.InputCustomEvent) => internal.InputCustomEvent;
5
+ }
6
+ export interface Configuration {
7
+ readonly logger: LDLogger;
8
+ readonly maxCachedContexts: number;
9
+ readonly capacity: number;
10
+ readonly diagnosticRecordingInterval: number;
11
+ readonly flushInterval: number;
12
+ readonly streamInitialReconnectDelay: number;
13
+ readonly allAttributesPrivate: boolean;
14
+ readonly debug: boolean;
15
+ readonly diagnosticOptOut: boolean;
16
+ readonly sendEvents: boolean;
17
+ readonly sendLDHeaders: boolean;
18
+ readonly useReport: boolean;
19
+ readonly withReasons: boolean;
20
+ readonly privateAttributes: string[];
21
+ readonly tags: ApplicationTags;
22
+ readonly applicationInfo?: {
23
+ id?: string;
24
+ version?: string;
25
+ name?: string;
26
+ versionName?: string;
27
+ };
28
+ readonly bootstrap?: LDFlagSet;
29
+ readonly requestHeaderTransform?: (headers: Map<string, string>) => Map<string, string>;
30
+ readonly stream?: boolean;
31
+ readonly hash?: string;
32
+ readonly wrapperName?: string;
33
+ readonly wrapperVersion?: string;
34
+ readonly serviceEndpoints: ServiceEndpoints;
35
+ readonly pollInterval: number;
36
+ readonly userAgentHeaderName: 'user-agent' | 'x-launchdarkly-user-agent';
37
+ readonly trackEventModifier: (event: internal.InputCustomEvent) => internal.InputCustomEvent;
38
+ readonly hooks: Hook[];
39
+ }
40
+ declare const DEFAULT_POLLING: string;
41
+ declare const DEFAULT_STREAM: string;
42
+ export { DEFAULT_POLLING, DEFAULT_STREAM };
43
+ export default class ConfigurationImpl implements Configuration {
44
+ readonly logger: LDLogger;
45
+ private readonly baseUri;
46
+ private readonly eventsUri;
47
+ private readonly streamUri;
10
48
  readonly maxCachedContexts = 5;
11
49
  readonly capacity = 100;
12
50
  readonly diagnosticRecordingInterval = 900;
13
51
  readonly flushInterval = 30;
14
52
  readonly streamInitialReconnectDelay = 1;
15
- readonly allAttributesPrivate = false;
16
- readonly debug = false;
17
- readonly diagnosticOptOut = false;
18
- readonly sendEvents = true;
19
- readonly sendLDHeaders = true;
20
- readonly useReport = false;
21
- readonly withReasons = false;
53
+ readonly allAttributesPrivate: boolean;
54
+ readonly debug: boolean;
55
+ readonly diagnosticOptOut: boolean;
56
+ readonly sendEvents: boolean;
57
+ readonly sendLDHeaders: boolean;
58
+ readonly useReport: boolean;
59
+ readonly withReasons: boolean;
22
60
  readonly privateAttributes: string[];
23
- readonly initialConnectionMode: ConnectionMode;
24
61
  readonly tags: ApplicationTags;
25
62
  readonly applicationInfo?: {
26
63
  id?: string;
@@ -36,8 +73,11 @@ export default class Configuration {
36
73
  readonly wrapperVersion?: string;
37
74
  readonly serviceEndpoints: ServiceEndpoints;
38
75
  readonly pollInterval: number;
76
+ readonly userAgentHeaderName: 'user-agent' | 'x-launchdarkly-user-agent';
77
+ readonly hooks: Hook[];
78
+ readonly trackEventModifier: (event: internal.InputCustomEvent) => internal.InputCustomEvent;
39
79
  [index: string]: any;
40
- constructor(pristineOptions?: LDOptions, internalOptions?: internal.LDInternalOptions);
41
- validateTypesAndNames(pristineOptions: LDOptions): string[];
80
+ constructor(pristineOptions?: LDOptions, internalOptions?: LDClientInternalOptions);
81
+ private validateTypesAndNames;
42
82
  }
43
83
  //# sourceMappingURL=Configuration.d.ts.map
@@ -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,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKxD,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,iBAAiB,KAAK;IAEtC,SAAgB,QAAQ,OAAO;IAC/B,SAAgB,2BAA2B,OAAO;IAClD,SAAgB,aAAa,MAAM;IACnC,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,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAEjD,SAAgB,qBAAqB,EAAE,cAAc,CAAe;IAEpE,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;IAEnD,SAAgB,YAAY,EAAE,MAAM,CAA4B;IAGhE,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"}
1
+ {"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import Configuration from './Configuration';
2
- export default Configuration;
1
+ import ConfigurationImpl, { Configuration, DEFAULT_POLLING, DEFAULT_STREAM, LDClientInternalOptions } from './Configuration';
2
+ export { Configuration, ConfigurationImpl, LDClientInternalOptions, DEFAULT_POLLING, DEFAULT_STREAM, };
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,EAAE,EACxB,aAAa,EACb,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,cAAc,GACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAYxC,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,aAAa,CA4BtD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,aAAa,CA8BtD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { LDApplication, LDContext, LDDevice, LDMultiKindContext, LDSingleKindContext, LDUser, Platform } from '@launchdarkly/js-sdk-common';
2
- import Configuration from '../configuration';
2
+ import { Configuration } from '../configuration';
3
3
  export declare const toMulti: (c: LDSingleKindContext) => {
4
4
  [x: string]: string | {
5
5
  [attribute: string]: any;
@@ -19,7 +19,7 @@ export declare const toMulti: (c: LDSingleKindContext) => {
19
19
  * @param config
20
20
  * @return An LDApplication object with populated key, envAttributesVersion, id and version.
21
21
  */
22
- export declare const addApplicationInfo: ({ crypto, info }: Platform, { applicationInfo }: Configuration) => LDApplication | undefined;
22
+ export declare const addApplicationInfo: ({ crypto, info }: Platform, { applicationInfo }: Configuration) => Promise<LDApplication | undefined>;
23
23
  /**
24
24
  * Clones the LDDevice object and populates the key and envAttributesVersion field.
25
25
  *
@@ -27,5 +27,5 @@ export declare const addApplicationInfo: ({ crypto, info }: Platform, { applicat
27
27
  * @return An LDDevice object with populated key and envAttributesVersion.
28
28
  */
29
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>;
30
+ export declare const addAutoEnv: (context: LDContext, platform: Platform, config: Configuration) => Promise<LDUser | LDSingleKindContext | LDMultiKindContext>;
31
31
  //# sourceMappingURL=addAutoEnv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addAutoEnv.d.ts","sourceRoot":"","sources":["../../src/context/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;AAO7C,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,kCA2BrD,CAAC;AAEF,eAAO,MAAM,UAAU,YAAmB,SAAS,YAAY,QAAQ,UAAU,aAAa,+DA2C7F,CAAC"}
1
+ {"version":3,"file":"addAutoEnv.d.ts","sourceRoot":"","sources":["../../src/context/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,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD,eAAO,MAAM,OAAO,MAAO,mBAAmB;;;;;;;;;CAO7C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,qBACX,QAAQ,uBACL,aAAa,KACjC,QAAQ,aAAa,GAAG,SAAS,CA0BnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aAAoB,QAAQ,kCA2BrD,CAAC;AAEF,eAAO,MAAM,UAAU,YAAmB,SAAS,YAAY,QAAQ,UAAU,aAAa,+DA2C7F,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Hasher } from '@launchdarkly/js-sdk-common';
2
+ export default function digest(hasher: Hasher, encoding: string): Promise<string>;
3
+ //# sourceMappingURL=digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/crypto/digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,wBAA8B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAStF"}
@@ -0,0 +1,16 @@
1
+ import { Context, LDLogger, LDPollingError, LDStreamingError } from '@launchdarkly/js-sdk-common';
2
+ import { FlagManager } from '../flag-manager/FlagManager';
3
+ import { DeleteFlag, Flags, PatchFlag } from '../types';
4
+ import DataSourceStatusManager from './DataSourceStatusManager';
5
+ export default class DataSourceEventHandler {
6
+ private readonly flagManager;
7
+ private readonly statusManager;
8
+ private readonly logger;
9
+ constructor(flagManager: FlagManager, statusManager: DataSourceStatusManager, logger: LDLogger);
10
+ handlePut(context: Context, flags: Flags): Promise<void>;
11
+ handlePatch(context: Context, patchFlag: PatchFlag): Promise<void>;
12
+ handleDelete(context: Context, deleteFlag: DeleteFlag): Promise<void>;
13
+ handleStreamingError(error: LDStreamingError): void;
14
+ handlePollingError(error: LDPollingError): void;
15
+ }
16
+ //# sourceMappingURL=DataSourceEventHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSourceEventHandler.d.ts","sourceRoot":"","sources":["../../src/datasource/DataSourceEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAElG,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,QAAQ;IAG7B,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;IAexC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAQlD,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU;IAkB3D,oBAAoB,CAAC,KAAK,EAAE,gBAAgB;IAI5C,kBAAkB,CAAC,KAAK,EAAE,cAAc;CAGzC"}
@@ -0,0 +1,39 @@
1
+ import DataSourceStatusErrorInfo from './DataSourceStatusErrorInfo';
2
+ export declare enum DataSourceState {
3
+ Initializing = "INITIALIZING",
4
+ Valid = "VALID",
5
+ Interrupted = "INTERRUPTED",
6
+ SetOffline = "SET_OFFLINE",
7
+ Closed = "CLOSED"
8
+ }
9
+ export default interface DataSourceStatus {
10
+ /**
11
+ * An enumerated value representing the overall current state of the data source.
12
+ */
13
+ readonly state: DataSourceState;
14
+ /**
15
+ * The UNIX epoch timestamp in milliseconds that the value of State most recently changed.
16
+ *
17
+ * The meaning of this depends on the current state:
18
+ * For {@link DataSourceState.Initializing}, it is the time that the datasource started
19
+ * attempting to retrieve data.
20
+ *
21
+ * For {@link DataSourceState.Valid}, it is the time that the data source most
22
+ * recently entered a valid state, after previously having been
23
+ * {@link DataSourceStatus.Initializing} or an invalid state such as
24
+ * {@link DataSourceState.Interrupted}.
25
+ *
26
+ * - For {@link DataSourceState.interrupted}, it is the time that the data source
27
+ * most recently entered an error state, after previously having been
28
+ * {@link DataSourceState.valid}.
29
+ *
30
+ * For {@link DataSourceState.Closed}, it is the time that the data source
31
+ * encountered an unrecoverable error or that the datasource was explicitly closed.
32
+ */
33
+ readonly stateSince: number;
34
+ /**
35
+ * The last error encountered. May be absent after application restart.
36
+ */
37
+ readonly lastError?: DataSourceStatusErrorInfo;
38
+ }
39
+ //# sourceMappingURL=DataSourceStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSourceStatus.d.ts","sourceRoot":"","sources":["../../src/datasource/DataSourceStatus.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,UAAU,gBAAgB;IAC1B,MAAM,WAAW;CAGlB;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB;IACvC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CAChD"}
@@ -0,0 +1,8 @@
1
+ import { DataSourceErrorKind } from '@launchdarkly/js-sdk-common';
2
+ export default interface DataSourceStatusErrorInfo {
3
+ readonly kind: DataSourceErrorKind;
4
+ readonly message: string;
5
+ readonly time: number;
6
+ readonly statusCode?: number;
7
+ }
8
+ //# sourceMappingURL=DataSourceStatusErrorInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSourceStatusErrorInfo.d.ts","sourceRoot":"","sources":["../../src/datasource/DataSourceStatusErrorInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,MAAM,CAAC,OAAO,WAAW,yBAAyB;IAEhD,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAMnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAGzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAGtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
@@ -0,0 +1,40 @@
1
+ import { DataSourceErrorKind } from '@launchdarkly/js-sdk-common';
2
+ import LDEmitter from '../LDEmitter';
3
+ import DataSourceStatus, { DataSourceState } from './DataSourceStatus';
4
+ /**
5
+ * Tracks the current data source status and emits updates when the status changes.
6
+ */
7
+ export default class DataSourceStatusManager {
8
+ private readonly emitter;
9
+ private state;
10
+ private stateSinceMillis;
11
+ private errorInfo?;
12
+ private timeStamper;
13
+ constructor(emitter: LDEmitter, timeStamper?: () => number);
14
+ get status(): DataSourceStatus;
15
+ /**
16
+ * Updates the state of the manager.
17
+ *
18
+ * @param requestedState to track
19
+ * @param isError to indicate that the state update is a result of an error occurring.
20
+ */
21
+ private updateState;
22
+ /**
23
+ * Requests the manager move to the provided state. This request may be ignored
24
+ * if the current state cannot transition to the requested state.
25
+ * @param state that is requested
26
+ */
27
+ requestStateUpdate(state: DataSourceState): void;
28
+ /**
29
+ * Reports a datasource error to this manager. Since the {@link DataSourceStatus} includes error
30
+ * information, it is possible that that a {@link DataSourceStatus} update is emitted with
31
+ * the same {@link DataSourceState}.
32
+ *
33
+ * @param kind of the error
34
+ * @param message for the error
35
+ * @param statusCode of the error if there was one
36
+ * @param recoverable to indicate that the error is anticipated to be recoverable
37
+ */
38
+ reportError(kind: DataSourceErrorKind, message: string, statusCode?: number, recoverable?: boolean): void;
39
+ }
40
+ //# sourceMappingURL=DataSourceStatusManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSourceStatusManager.d.ts","sourceRoot":"","sources":["../../src/datasource/DataSourceStatusManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,gBAAgB,EAAE,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGvE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAOxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,SAAS,CAAC,CAA4B;IAC9C,OAAO,CAAC,WAAW,CAAe;gBAGf,OAAO,EAAE,SAAS,EACnC,WAAW,GAAE,MAAM,MAAyB;IAO9C,IAAI,MAAM,IAAI,gBAAgB,CAM7B;IAED;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,eAAe;IAIzC;;;;;;;;;OASG;IACH,WAAW,CACT,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,GAAE,OAAe;CAgB/B"}
@@ -1,4 +1,4 @@
1
- import Configuration from '../configuration';
1
+ import { Configuration } from '../configuration';
2
2
  export type DiagnosticsInitConfig = {
3
3
  customBaseURI: boolean;
4
4
  customStreamURI: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"createDiagnosticsInitConfig.d.ts","sourceRoot":"","sources":["../../src/diagnostics/createDiagnosticsInitConfig.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG;IAElC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iCAAiC,EAAE,MAAM,CAAC;IAC1C,oBAAoB,EAAE,OAAO,CAAC;IAG9B,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AACF,QAAA,MAAM,2BAA2B,WAAY,aAAa,KAAG,qBAY3D,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"createDiagnosticsInitConfig.d.ts","sourceRoot":"","sources":["../../src/diagnostics/createDiagnosticsInitConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAmC,MAAM,kBAAkB,CAAC;AAElF,MAAM,MAAM,qBAAqB,GAAG;IAElC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iCAAiC,EAAE,MAAM,CAAC;IAC1C,oBAAoB,EAAE,OAAO,CAAC;IAG9B,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AACF,QAAA,MAAM,2BAA2B,WAAY,aAAa,KAAG,qBAY3D,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { internal, Platform } from '@launchdarkly/js-sdk-common';
2
- import Configuration from '../configuration';
2
+ import { Configuration } from '../configuration';
3
3
  declare const createDiagnosticsManager: (clientSideID: string, config: Configuration, platform: Platform) => internal.DiagnosticsManager | undefined;
4
4
  export default createDiagnosticsManager;
5
5
  //# sourceMappingURL=createDiagnosticsManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDiagnosticsManager.d.ts","sourceRoot":"","sources":["../../src/diagnostics/createDiagnosticsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAG7C,QAAA,MAAM,wBAAwB,iBACd,MAAM,UACZ,aAAa,YACX,QAAQ,4CAWnB,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"createDiagnosticsManager.d.ts","sourceRoot":"","sources":["../../src/diagnostics/createDiagnosticsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,QAAA,MAAM,wBAAwB,iBACd,MAAM,UACZ,aAAa,YACX,QAAQ,4CAWnB,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,5 +1,5 @@
1
- import { internal, Platform } from '@launchdarkly/js-sdk-common';
2
- import Configuration from '../configuration';
3
- declare const createEventProcessor: (clientSideID: string, config: Configuration, platform: Platform, diagnosticsManager?: internal.DiagnosticsManager, start?: boolean) => internal.EventProcessor | undefined;
1
+ import { internal, LDHeaders, Platform } from '@launchdarkly/js-sdk-common';
2
+ import { Configuration } from '../configuration';
3
+ declare const createEventProcessor: (clientSideID: string, config: Configuration, platform: Platform, baseHeaders: LDHeaders, diagnosticsManager?: internal.DiagnosticsManager) => internal.EventProcessor | undefined;
4
4
  export default createEventProcessor;
5
5
  //# 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,MAAM,6BAA6B,CAAC;AAEhF,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,QAAA,MAAM,oBAAoB,iBACV,MAAM,UACZ,aAAa,YACX,QAAQ,uBACG,SAAS,kBAAkB,UACzC,OAAO,KACb,SAAS,cAAc,GAAG,SAY5B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"createEventProcessor.d.ts","sourceRoot":"","sources":["../../src/events/createEventProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,QAAA,MAAM,oBAAoB,iBACV,MAAM,UACZ,aAAa,YACX,QAAQ,eACL,SAAS,uBACD,SAAS,kBAAkB,KAC/C,SAAS,cAAc,GAAG,SAa5B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -3,23 +3,11 @@ import { FlagsChangeCallback } from './FlagUpdater';
3
3
  import { ItemDescriptor } from './ItemDescriptor';
4
4
  /**
5
5
  * Top level manager of flags for the client. LDClient should be using this
6
- * class and not any of the specific instances managed by it. Updates from
6
+ * interface and not any of the specific instances managed by it. Updates from
7
7
  * data sources should be directed to the [init] and [upsert] methods of this
8
- * class.
8
+ * interface.
9
9
  */
10
- export default class FlagManager {
11
- private readonly timeStamper;
12
- private flagStore;
13
- private flagUpdater;
14
- private flagPersistence;
15
- /**
16
- * @param platform implementation of various platform provided functionality
17
- * @param sdkKey that will be used to distinguish different environments
18
- * @param maxCachedContexts that specifies the max number of contexts that will be cached in persistence
19
- * @param logger used for logging various messages
20
- * @param timeStamper exists for testing purposes
21
- */
22
- constructor(platform: Platform, sdkKey: string, maxCachedContexts: number, logger: LDLogger, timeStamper?: () => number);
10
+ export interface FlagManager {
23
11
  /**
24
12
  * Attempts to get a flag by key from the current flags.
25
13
  */
@@ -46,6 +34,13 @@ export default class FlagManager {
46
34
  * Asynchronously load cached values from persistence.
47
35
  */
48
36
  loadCached(context: Context): Promise<boolean>;
37
+ /**
38
+ * Update in-memory storage with the specified flags, but do not persistent them to cache
39
+ * storage.
40
+ */
41
+ setBootstrap(context: Context, newFlags: {
42
+ [key: string]: ItemDescriptor;
43
+ }): void;
49
44
  /**
50
45
  * Register a flag change callback.
51
46
  */
@@ -55,4 +50,33 @@ export default class FlagManager {
55
50
  */
56
51
  off(callback: FlagsChangeCallback): void;
57
52
  }
53
+ export default class DefaultFlagManager implements FlagManager {
54
+ private readonly timeStamper;
55
+ private flagStore;
56
+ private flagUpdater;
57
+ private flagPersistencePromise;
58
+ /**
59
+ * @param platform implementation of various platform provided functionality
60
+ * @param sdkKey that will be used to distinguish different environments
61
+ * @param maxCachedContexts that specifies the max number of contexts that will be cached in persistence
62
+ * @param logger used for logging various messages
63
+ * @param timeStamper exists for testing purposes
64
+ */
65
+ constructor(platform: Platform, sdkKey: string, maxCachedContexts: number, logger: LDLogger, timeStamper?: () => number);
66
+ private initPersistence;
67
+ get(key: string): ItemDescriptor | undefined;
68
+ getAll(): {
69
+ [key: string]: ItemDescriptor;
70
+ };
71
+ setBootstrap(context: Context, newFlags: {
72
+ [key: string]: ItemDescriptor;
73
+ }): void;
74
+ init(context: Context, newFlags: {
75
+ [key: string]: ItemDescriptor;
76
+ }): Promise<void>;
77
+ upsert(context: Context, key: string, item: ItemDescriptor): Promise<boolean>;
78
+ loadCached(context: Context): Promise<boolean>;
79
+ on(callback: FlagsChangeCallback): void;
80
+ off(callback: FlagsChangeCallback): void;
81
+ }
58
82
  //# sourceMappingURL=FlagManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAK1E,OAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAiB5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAhB9B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAkB;IAEzC;;;;;;OAMG;gBAED,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,QAAQ,EACC,WAAW,GAAE,MAAM,MAAyB;IAgB/D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI5C;;OAEG;IACH,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE;IAI3C;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxF;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAInF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;OAEG;IACH,EAAE,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;CAGzC"}
1
+ {"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAK1E,OAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAE7C;;OAEG;IACH,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAC;IAE5C;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9E;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAElF;;OAEG;IACH,EAAE,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,WAAW;IAiB1D,OAAO,CAAC,QAAQ,CAAC,WAAW;IAhB9B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,sBAAsB,CAA2B;IAEzD;;;;;;OAMG;gBAED,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,QAAQ,EACC,WAAW,GAAE,MAAM,MAAyB;YAYjD,eAAe;IAoB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI5C,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE;IAI3C,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI;IAM3E,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlF,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7E,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,EAAE,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;CAGzC"}
@@ -16,7 +16,8 @@ export default class FlagPersistence {
16
16
  private readonly logger;
17
17
  private readonly timeStamper;
18
18
  private contextIndex;
19
- private indexKey;
19
+ private indexKey?;
20
+ private indexKeyPromise;
20
21
  constructor(platform: Platform, environmentNamespace: string, maxCachedContexts: number, flagStore: FlagStore, flagUpdater: FlagUpdater, logger: LDLogger, timeStamper?: () => number);
21
22
  /**
22
23
  * Inits flag persistence for the provided context with the provided flags. This will result
@@ -1 +1 @@
1
- {"version":3,"file":"FlagPersistence.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAK1E,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAKhC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV9B,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAS;gBAGN,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,MAAM,EAC5B,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,QAAQ,EAChB,WAAW,GAAE,MAAM,MAAyB;IAK/D;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnF;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YA4CtC,SAAS;YAqBT,UAAU;CA4BzB"}
1
+ {"version":3,"file":"FlagPersistence.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAK1E,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAMhC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAX9B,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAkB;gBAGtB,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,MAAM,EAC5B,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,QAAQ,EAChB,WAAW,GAAE,MAAM,MAAyB;IAK/D;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnF;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YA4CtC,SAAS;YAqBT,UAAU;CA4BzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FlagStore.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS;IAChC,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7C,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAC;CAC7C;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,KAAK,CAAyC;IAEtD,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE;IAUhD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAIlD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI5C,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE;CAG5C"}
1
+ {"version":3,"file":"FlagStore.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS;IAChC,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7C,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAC;CAC7C;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,KAAK,CAAyC;IAEtD,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE;IAUhD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAIlD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAO5C,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE;CAG5C"}