@launchdarkly/js-client-sdk-common 1.7.0 → 1.8.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 (87) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/DataManager.d.ts +49 -0
  3. package/dist/DataManager.d.ts.map +1 -0
  4. package/dist/DataManager.js +98 -0
  5. package/dist/DataManager.js.map +1 -0
  6. package/dist/LDClientImpl.d.ts +9 -44
  7. package/dist/LDClientImpl.d.ts.map +1 -1
  8. package/dist/LDClientImpl.js +18 -144
  9. package/dist/LDClientImpl.js.map +1 -1
  10. package/dist/api/LDClient.d.ts +0 -14
  11. package/dist/api/LDClient.d.ts.map +1 -1
  12. package/dist/api/LDOptions.d.ts +7 -10
  13. package/dist/api/LDOptions.d.ts.map +1 -1
  14. package/dist/api/index.d.ts +1 -0
  15. package/dist/api/index.d.ts.map +1 -1
  16. package/dist/api/index.js +1 -0
  17. package/dist/api/index.js.map +1 -1
  18. package/dist/configuration/Configuration.d.ts +57 -16
  19. package/dist/configuration/Configuration.d.ts.map +1 -1
  20. package/dist/configuration/Configuration.js +13 -7
  21. package/dist/configuration/Configuration.js.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/index.js +4 -1
  25. package/dist/configuration/index.js.map +1 -1
  26. package/dist/configuration/validators.d.ts.map +1 -1
  27. package/dist/configuration/validators.js +1 -9
  28. package/dist/configuration/validators.js.map +1 -1
  29. package/dist/context/addAutoEnv.d.ts +2 -2
  30. package/dist/context/addAutoEnv.d.ts.map +1 -1
  31. package/dist/context/addAutoEnv.js +5 -6
  32. package/dist/context/addAutoEnv.js.map +1 -1
  33. package/dist/context/ensureKey.js +1 -1
  34. package/dist/context/ensureKey.js.map +1 -1
  35. package/dist/crypto/digest.d.ts +3 -0
  36. package/dist/crypto/digest.d.ts.map +1 -0
  37. package/dist/crypto/digest.js +14 -0
  38. package/dist/crypto/digest.js.map +1 -0
  39. package/dist/diagnostics/createDiagnosticsInitConfig.d.ts +1 -1
  40. package/dist/diagnostics/createDiagnosticsInitConfig.d.ts.map +1 -1
  41. package/dist/diagnostics/createDiagnosticsInitConfig.js +2 -2
  42. package/dist/diagnostics/createDiagnosticsInitConfig.js.map +1 -1
  43. package/dist/diagnostics/createDiagnosticsManager.d.ts +1 -1
  44. package/dist/diagnostics/createDiagnosticsManager.d.ts.map +1 -1
  45. package/dist/events/createEventProcessor.d.ts +3 -3
  46. package/dist/events/createEventProcessor.d.ts.map +1 -1
  47. package/dist/events/createEventProcessor.js +2 -2
  48. package/dist/events/createEventProcessor.js.map +1 -1
  49. package/dist/flag-manager/FlagManager.d.ts +29 -15
  50. package/dist/flag-manager/FlagManager.d.ts.map +1 -1
  51. package/dist/flag-manager/FlagManager.js +10 -36
  52. package/dist/flag-manager/FlagManager.js.map +1 -1
  53. package/dist/flag-manager/FlagPersistence.d.ts +2 -1
  54. package/dist/flag-manager/FlagPersistence.d.ts.map +1 -1
  55. package/dist/flag-manager/FlagPersistence.js +5 -5
  56. package/dist/flag-manager/FlagPersistence.js.map +1 -1
  57. package/dist/flag-manager/FlagStore.d.ts.map +1 -1
  58. package/dist/flag-manager/FlagStore.js +4 -1
  59. package/dist/flag-manager/FlagStore.js.map +1 -1
  60. package/dist/index.d.ts +12 -2
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +5 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/polling/PollingProcessor.d.ts.map +1 -1
  65. package/dist/polling/PollingProcessor.js +22 -5
  66. package/dist/polling/PollingProcessor.js.map +1 -1
  67. package/dist/polling/Requestor.d.ts +16 -1
  68. package/dist/polling/Requestor.d.ts.map +1 -1
  69. package/dist/polling/Requestor.js +6 -8
  70. package/dist/polling/Requestor.js.map +1 -1
  71. package/dist/storage/namespaceUtils.d.ts +7 -7
  72. package/dist/storage/namespaceUtils.d.ts.map +1 -1
  73. package/dist/storage/namespaceUtils.js +10 -9
  74. package/dist/storage/namespaceUtils.js.map +1 -1
  75. package/dist/streaming/DataSourceConfig.d.ts +20 -0
  76. package/dist/streaming/DataSourceConfig.d.ts.map +1 -0
  77. package/dist/streaming/DataSourceConfig.js +3 -0
  78. package/dist/streaming/DataSourceConfig.js.map +1 -0
  79. package/dist/streaming/StreamingProcessor.d.ts +33 -0
  80. package/dist/streaming/StreamingProcessor.d.ts.map +1 -0
  81. package/dist/streaming/StreamingProcessor.js +126 -0
  82. package/dist/streaming/StreamingProcessor.js.map +1 -0
  83. package/dist/streaming/index.d.ts +4 -0
  84. package/dist/streaming/index.d.ts.map +1 -0
  85. package/dist/streaming/index.js +6 -0
  86. package/dist/streaming/index.js.map +1 -0
  87. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.8.0](https://github.com/launchdarkly/js-core/compare/js-client-sdk-common-v1.7.0...js-client-sdk-common-v1.8.0) (2024-09-26)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add platform support for async hashing. ([#573](https://github.com/launchdarkly/js-core/issues/573)) ([9248035](https://github.com/launchdarkly/js-core/commit/9248035a88fba1c7375c5df22ef6b4a80a867983))
9
+ * Add support for conditional event source capabilities. ([#577](https://github.com/launchdarkly/js-core/issues/577)) ([fe82500](https://github.com/launchdarkly/js-core/commit/fe82500f28cf8d8311502098aa6cc2e73932064e))
10
+ * Add support for js-client-sdk style initialization. ([53f5bb8](https://github.com/launchdarkly/js-core/commit/53f5bb89754ff05405d481a959e75742fbd0d0a9))
11
+ * Add URLs for custom events and URL filtering. ([#587](https://github.com/launchdarkly/js-core/issues/587)) ([7131e69](https://github.com/launchdarkly/js-core/commit/7131e6905f19cc10a1374aae5e74cec66c7fd6de))
12
+ * Adds support for REPORT. ([#575](https://github.com/launchdarkly/js-core/issues/575)) ([916b724](https://github.com/launchdarkly/js-core/commit/916b72409b63abdf350e70cca41331c4204b6e95))
13
+ * Allow using custom user-agent name. ([#580](https://github.com/launchdarkly/js-core/issues/580)) ([ed5a206](https://github.com/launchdarkly/js-core/commit/ed5a206c86f496942664dd73f6f8a7c602a1de28))
14
+ * Implement goals for client-side SDKs. ([#585](https://github.com/launchdarkly/js-core/issues/585)) ([fd38a8f](https://github.com/launchdarkly/js-core/commit/fd38a8fa8560dad0c6721c2eaeed2f3f5c674900))
15
+ * Refactor data source connection handling. ([53f5bb8](https://github.com/launchdarkly/js-core/commit/53f5bb89754ff05405d481a959e75742fbd0d0a9))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * Flag store should not access values from prototype. ([#567](https://github.com/launchdarkly/js-core/issues/567)) ([fca4d92](https://github.com/launchdarkly/js-core/commit/fca4d9293746d023a0a122110849bbf335aa3b62))
21
+ * Use flag value whenever provided even if variaiton is null or undefined. ([#581](https://github.com/launchdarkly/js-core/issues/581)) ([d11224c](https://github.com/launchdarkly/js-core/commit/d11224c64863c007f4f42f4c48683fd170dd2b32))
22
+
23
+
24
+ ### Dependencies
25
+
26
+ * The following workspace dependencies were updated
27
+ * dependencies
28
+ * @launchdarkly/js-sdk-common bumped from 2.8.0 to 2.9.0
29
+
3
30
  ## [1.7.0](https://github.com/launchdarkly/js-core/compare/js-client-sdk-common-v1.6.0...js-client-sdk-common-v1.7.0) (2024-09-03)
4
31
 
5
32
 
@@ -0,0 +1,49 @@
1
+ import { Context, EventName, internal, LDContext, LDHeaders, LDLogger, Platform, ProcessStreamResponse, subsystem } from '@launchdarkly/js-sdk-common';
2
+ import { LDIdentifyOptions } from './api/LDIdentifyOptions';
3
+ import { Configuration } from './configuration/Configuration';
4
+ import { FlagManager } from './flag-manager/FlagManager';
5
+ import LDEmitter from './LDEmitter';
6
+ import { DataSourcePaths } from './streaming';
7
+ export interface DataManager {
8
+ /**
9
+ * This function handles the data management aspects of the identification process.
10
+ *
11
+ * Implementation Note: The identifyResolve and identifyReject function resolve or reject the
12
+ * identify function at LDClient level. It is likely in individual implementations that these
13
+ * functions will be passed to other components, such as a datasource, do indicate when the
14
+ * identify process has been completed. The data manager identify function should return once
15
+ * everything has been set in motion to complete the identification process.
16
+ *
17
+ * @param identifyResolve Called to reject the identify operation.
18
+ * @param identifyReject Called to complete the identify operation.
19
+ * @param context The context being identified.
20
+ * @param identifyOptions Options for identification.
21
+ */
22
+ identify(identifyResolve: () => void, identifyReject: (err: Error) => void, context: Context, identifyOptions?: LDIdentifyOptions): Promise<void>;
23
+ }
24
+ /**
25
+ * Factory interface for constructing data managers.
26
+ */
27
+ export interface DataManagerFactory {
28
+ (flagManager: FlagManager, configuration: Configuration, baseHeaders: LDHeaders, emitter: LDEmitter, diagnosticsManager?: internal.DiagnosticsManager): DataManager;
29
+ }
30
+ export declare abstract class BaseDataManager implements DataManager {
31
+ protected readonly platform: Platform;
32
+ protected readonly flagManager: FlagManager;
33
+ protected readonly credential: string;
34
+ protected readonly config: Configuration;
35
+ protected readonly getPollingPaths: () => DataSourcePaths;
36
+ protected readonly getStreamingPaths: () => DataSourcePaths;
37
+ protected readonly baseHeaders: LDHeaders;
38
+ protected readonly emitter: LDEmitter;
39
+ protected readonly diagnosticsManager?: internal.DiagnosticsManager | undefined;
40
+ protected updateProcessor?: subsystem.LDStreamProcessor;
41
+ protected readonly logger: LDLogger;
42
+ protected context?: Context;
43
+ constructor(platform: Platform, flagManager: FlagManager, credential: string, config: Configuration, getPollingPaths: () => DataSourcePaths, getStreamingPaths: () => DataSourcePaths, baseHeaders: LDHeaders, emitter: LDEmitter, diagnosticsManager?: internal.DiagnosticsManager | undefined);
44
+ abstract identify(identifyResolve: () => void, identifyReject: (err: Error) => void, context: Context, identifyOptions?: LDIdentifyOptions): Promise<void>;
45
+ protected createPollingProcessor(context: LDContext, checkedContext: Context, identifyResolve?: () => void, identifyReject?: (err: Error) => void): void;
46
+ protected createStreamingProcessor(context: LDContext, checkedContext: Context, identifyResolve?: () => void, identifyReject?: (err: Error) => void): void;
47
+ protected createStreamListeners(context: Context, identifyResolve?: () => void): Map<EventName, ProcessStreamResponse>;
48
+ }
49
+ //# sourceMappingURL=DataManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../src/DataManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseDataManager = void 0;
4
+ const PollingProcessor_1 = require("./polling/PollingProcessor");
5
+ const streaming_1 = require("./streaming");
6
+ class BaseDataManager {
7
+ constructor(platform, flagManager, credential, config, getPollingPaths, getStreamingPaths, baseHeaders, emitter, diagnosticsManager) {
8
+ this.platform = platform;
9
+ this.flagManager = flagManager;
10
+ this.credential = credential;
11
+ this.config = config;
12
+ this.getPollingPaths = getPollingPaths;
13
+ this.getStreamingPaths = getStreamingPaths;
14
+ this.baseHeaders = baseHeaders;
15
+ this.emitter = emitter;
16
+ this.diagnosticsManager = diagnosticsManager;
17
+ this.logger = config.logger;
18
+ }
19
+ createPollingProcessor(context, checkedContext, identifyResolve, identifyReject) {
20
+ this.updateProcessor = new PollingProcessor_1.default(JSON.stringify(context), {
21
+ credential: this.credential,
22
+ serviceEndpoints: this.config.serviceEndpoints,
23
+ paths: this.getPollingPaths(),
24
+ baseHeaders: this.baseHeaders,
25
+ pollInterval: this.config.pollInterval,
26
+ withReasons: this.config.withReasons,
27
+ useReport: this.config.useReport,
28
+ }, this.platform.requests, this.platform.encoding, async (flags) => {
29
+ this.logger.debug(`Handling polling result: ${Object.keys(flags)}`);
30
+ // mapping flags to item descriptors
31
+ const descriptors = Object.entries(flags).reduce((acc, [key, flag]) => {
32
+ acc[key] = { version: flag.version, flag };
33
+ return acc;
34
+ }, {});
35
+ await this.flagManager.init(checkedContext, descriptors);
36
+ identifyResolve === null || identifyResolve === void 0 ? void 0 : identifyResolve();
37
+ }, (err) => {
38
+ identifyReject === null || identifyReject === void 0 ? void 0 : identifyReject(err);
39
+ this.emitter.emit('error', context, err);
40
+ });
41
+ }
42
+ createStreamingProcessor(context, checkedContext, identifyResolve, identifyReject) {
43
+ this.updateProcessor = new streaming_1.StreamingProcessor(JSON.stringify(context), {
44
+ credential: this.credential,
45
+ serviceEndpoints: this.config.serviceEndpoints,
46
+ paths: this.getStreamingPaths(),
47
+ baseHeaders: this.baseHeaders,
48
+ initialRetryDelayMillis: this.config.streamInitialReconnectDelay * 1000,
49
+ withReasons: this.config.withReasons,
50
+ useReport: this.config.useReport,
51
+ }, this.createStreamListeners(checkedContext, identifyResolve), this.platform.requests, this.platform.encoding, this.diagnosticsManager, (e) => {
52
+ identifyReject === null || identifyReject === void 0 ? void 0 : identifyReject(e);
53
+ this.emitter.emit('error', context, e);
54
+ });
55
+ }
56
+ createStreamListeners(context, identifyResolve) {
57
+ const listeners = new Map();
58
+ listeners.set('put', {
59
+ deserializeData: JSON.parse,
60
+ processJson: async (evalResults) => {
61
+ this.logger.debug(`Stream PUT: ${Object.keys(evalResults)}`);
62
+ // mapping flags to item descriptors
63
+ const descriptors = Object.entries(evalResults).reduce((acc, [key, flag]) => {
64
+ acc[key] = { version: flag.version, flag };
65
+ return acc;
66
+ }, {});
67
+ await this.flagManager.init(context, descriptors);
68
+ identifyResolve === null || identifyResolve === void 0 ? void 0 : identifyResolve();
69
+ },
70
+ });
71
+ listeners.set('patch', {
72
+ deserializeData: JSON.parse,
73
+ processJson: async (patchFlag) => {
74
+ this.logger.debug(`Stream PATCH ${JSON.stringify(patchFlag, null, 2)}`);
75
+ this.flagManager.upsert(context, patchFlag.key, {
76
+ version: patchFlag.version,
77
+ flag: patchFlag,
78
+ });
79
+ },
80
+ });
81
+ listeners.set('delete', {
82
+ deserializeData: JSON.parse,
83
+ processJson: async (deleteFlag) => {
84
+ this.logger.debug(`Stream DELETE ${JSON.stringify(deleteFlag, null, 2)}`);
85
+ this.flagManager.upsert(context, deleteFlag.key, {
86
+ version: deleteFlag.version,
87
+ flag: Object.assign(Object.assign({}, deleteFlag), { deleted: true,
88
+ // props below are set to sensible defaults. they are irrelevant
89
+ // because this flag has been deleted.
90
+ flagVersion: 0, value: undefined, variation: 0, trackEvents: false }),
91
+ });
92
+ },
93
+ });
94
+ return listeners;
95
+ }
96
+ }
97
+ exports.BaseDataManager = BaseDataManager;
98
+ //# sourceMappingURL=DataManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataManager.js","sourceRoot":"","sources":["../src/DataManager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
- import { AutoEnvAttributes, internal, LDContext, LDFlagSet, LDFlagValue, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
2
- import { ConnectionMode, LDClient, type LDOptions } from './api';
1
+ import { AutoEnvAttributes, Context, internal, LDContext, LDFlagSet, LDFlagValue, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
2
+ import { LDClient, type LDOptions } from './api';
3
3
  import { LDEvaluationDetail, LDEvaluationDetailTyped } from './api/LDEvaluationDetail';
4
4
  import { LDIdentifyOptions } from './api/LDIdentifyOptions';
5
+ import { LDClientInternalOptions } from './configuration';
6
+ import { DataManager, DataManagerFactory } from './DataManager';
5
7
  import { EventName } from './LDEmitter';
6
8
  export default class LDClientImpl implements LDClient {
7
9
  readonly sdkKey: string;
@@ -20,25 +22,13 @@ export default class LDClientImpl implements LDClient {
20
22
  private eventFactoryWithReasons;
21
23
  private emitter;
22
24
  private flagManager;
23
- private readonly clientContext;
24
25
  private eventSendingEnabled;
25
- private networkAvailable;
26
- private connectionMode;
26
+ private baseHeaders;
27
+ protected dataManager: DataManager;
27
28
  /**
28
29
  * Creates the client object synchronously. No async, no network calls.
29
30
  */
30
- constructor(sdkKey: string, autoEnvAttributes: AutoEnvAttributes, platform: Platform, options: LDOptions, internalOptions?: internal.LDInternalOptions);
31
- /**
32
- * Sets the SDK connection mode.
33
- *
34
- * @param mode - One of supported {@link ConnectionMode}. Default is 'streaming'.
35
- */
36
- setConnectionMode(mode: ConnectionMode): Promise<void>;
37
- /**
38
- * Gets the SDK connection mode.
39
- */
40
- getConnectionMode(): ConnectionMode;
41
- isOffline(): boolean;
31
+ constructor(sdkKey: string, autoEnvAttributes: AutoEnvAttributes, platform: Platform, options: LDOptions, dataManagerFactory: DataManagerFactory, internalOptions?: LDClientInternalOptions);
42
32
  allFlags(): LDFlagSet;
43
33
  close(): Promise<void>;
44
34
  flush(): Promise<{
@@ -46,24 +36,8 @@ export default class LDClientImpl implements LDClient {
46
36
  result: boolean;
47
37
  }>;
48
38
  getContext(): LDContext | undefined;
39
+ protected getInternalContext(): Context | undefined;
49
40
  private createStreamListeners;
50
- /**
51
- * Generates the url path for streaming.
52
- *
53
- * @protected This function must be overridden in subclasses for streaming
54
- * to work.
55
- * @param _context The LDContext object
56
- */
57
- protected createStreamUriPath(_context: LDContext): string;
58
- /**
59
- * Generates the url path for polling.
60
- * @param _context
61
- *
62
- * @protected This function must be overridden in subclasses for polling
63
- * to work.
64
- * @param _context The LDContext object
65
- */
66
- protected createPollUriPath(_context: LDContext): string;
67
41
  private createIdentifyPromise;
68
42
  /**
69
43
  * Identifies a context to LaunchDarkly. See {@link LDClient.identify}.
@@ -81,8 +55,6 @@ export default class LDClientImpl implements LDClient {
81
55
  * 3. A network error is encountered during initialization.
82
56
  */
83
57
  identify(pristineContext: LDContext, identifyOptions?: LDIdentifyOptions): Promise<void>;
84
- private createPollingProcessor;
85
- private createStreamingProcessor;
86
58
  off(eventName: EventName, listener: Function): void;
87
59
  on(eventName: EventName, listener: Function): void;
88
60
  track(key: string, data?: any, metricValue?: number): void;
@@ -98,19 +70,12 @@ export default class LDClientImpl implements LDClient {
98
70
  numberVariationDetail(key: string, defaultValue: number): LDEvaluationDetailTyped<number>;
99
71
  stringVariationDetail(key: string, defaultValue: string): LDEvaluationDetailTyped<string>;
100
72
  jsonVariationDetail(key: string, defaultValue: unknown): LDEvaluationDetailTyped<unknown>;
101
- /**
102
- * Inform the client of the network state. Can be used to modify connection behavior.
103
- *
104
- * For instance the implementation may choose to suppress errors from connections if the client
105
- * knows that there is no network available.
106
- * @param _available True when there is an available network.
107
- */
108
- protected setNetworkAvailability(available: boolean): void;
109
73
  /**
110
74
  * Enable/Disable event sending.
111
75
  * @param enabled True to enable event processing, false to disable.
112
76
  * @param flush True to flush while disabling. Useful to flush on certain state transitions.
113
77
  */
114
78
  protected setEventSendingEnabled(enabled: boolean, flush: boolean): void;
79
+ protected sendEvent(event: internal.InputEvent): void;
115
80
  }
116
81
  //# sourceMappingURL=LDClientImpl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDClientImpl.d.ts","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LDClientImpl.d.ts","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,12 @@ const createEventProcessor_1 = require("./events/createEventProcessor");
10
10
  const EventFactory_1 = require("./events/EventFactory");
11
11
  const FlagManager_1 = require("./flag-manager/FlagManager");
12
12
  const LDEmitter_1 = require("./LDEmitter");
13
- const PollingProcessor_1 = require("./polling/PollingProcessor");
14
13
  const { ClientMessages, ErrorKinds } = js_sdk_common_1.internal;
15
14
  class LDClientImpl {
16
15
  /**
17
16
  * Creates the client object synchronously. No async, no network calls.
18
17
  */
19
- constructor(sdkKey, autoEnvAttributes, platform, options, internalOptions) {
18
+ constructor(sdkKey, autoEnvAttributes, platform, options, dataManagerFactory, internalOptions) {
20
19
  this.sdkKey = sdkKey;
21
20
  this.autoEnvAttributes = autoEnvAttributes;
22
21
  this.platform = platform;
@@ -24,21 +23,19 @@ class LDClientImpl {
24
23
  this.highTimeoutThreshold = 15;
25
24
  this.eventFactoryDefault = new EventFactory_1.default(false);
26
25
  this.eventFactoryWithReasons = new EventFactory_1.default(true);
27
- this.eventSendingEnabled = true;
28
- this.networkAvailable = true;
26
+ this.eventSendingEnabled = false;
29
27
  if (!sdkKey) {
30
28
  throw new Error('You must configure the client with a client-side SDK key');
31
29
  }
32
30
  if (!platform.encoding) {
33
31
  throw new Error('Platform must implement Encoding because btoa is required.');
34
32
  }
35
- this.config = new configuration_1.default(options, internalOptions);
36
- this.connectionMode = this.config.initialConnectionMode;
37
- this.clientContext = new js_sdk_common_1.ClientContext(sdkKey, this.config, platform);
33
+ this.config = new configuration_1.ConfigurationImpl(options, internalOptions);
38
34
  this.logger = this.config.logger;
35
+ this.baseHeaders = (0, js_sdk_common_1.defaultHeaders)(this.sdkKey, this.platform.info, this.config.tags, this.config.serviceEndpoints.includeAuthorizationHeader, this.config.userAgentHeaderName);
39
36
  this.flagManager = new FlagManager_1.default(this.platform, sdkKey, this.config.maxCachedContexts, this.config.logger);
40
37
  this.diagnosticsManager = (0, createDiagnosticsManager_1.default)(sdkKey, this.config, platform);
41
- this.eventProcessor = (0, createEventProcessor_1.default)(sdkKey, this.config, platform, this.diagnosticsManager, !this.isOffline());
38
+ this.eventProcessor = (0, createEventProcessor_1.default)(sdkKey, this.config, platform, this.baseHeaders, this.diagnosticsManager);
42
39
  this.emitter = new LDEmitter_1.default();
43
40
  this.emitter.on('change', (c, changedKeys) => {
44
41
  this.logger.debug(`change: context: ${JSON.stringify(c)}, flags: ${changedKeys}`);
@@ -50,45 +47,7 @@ class LDClientImpl {
50
47
  const ldContext = js_sdk_common_1.Context.toLDContext(context);
51
48
  this.emitter.emit('change', ldContext, flagKeys);
52
49
  });
53
- }
54
- /**
55
- * Sets the SDK connection mode.
56
- *
57
- * @param mode - One of supported {@link ConnectionMode}. Default is 'streaming'.
58
- */
59
- async setConnectionMode(mode) {
60
- var _a;
61
- if (this.connectionMode === mode) {
62
- this.logger.debug(`setConnectionMode ignored. Mode is already '${mode}'.`);
63
- return Promise.resolve();
64
- }
65
- this.connectionMode = mode;
66
- this.logger.debug(`setConnectionMode ${mode}.`);
67
- switch (mode) {
68
- case 'offline':
69
- (_a = this.updateProcessor) === null || _a === void 0 ? void 0 : _a.close();
70
- break;
71
- case 'polling':
72
- case 'streaming':
73
- if (this.uncheckedContext) {
74
- // identify will start the update processor
75
- return this.identify(this.uncheckedContext, { timeout: this.identifyTimeout });
76
- }
77
- break;
78
- default:
79
- this.logger.warn(`Unknown ConnectionMode: ${mode}. Only 'offline', 'streaming', and 'polling' are supported.`);
80
- break;
81
- }
82
- return Promise.resolve();
83
- }
84
- /**
85
- * Gets the SDK connection mode.
86
- */
87
- getConnectionMode() {
88
- return this.connectionMode;
89
- }
90
- isOffline() {
91
- return this.connectionMode === 'offline';
50
+ this.dataManager = dataManagerFactory(this.flagManager, this.config, this.baseHeaders, this.emitter, this.diagnosticsManager);
92
51
  }
93
52
  allFlags() {
94
53
  // extracting all flag values
@@ -127,6 +86,9 @@ class LDClientImpl {
127
86
  // validity.
128
87
  return this.uncheckedContext ? (0, js_sdk_common_1.clone)(this.uncheckedContext) : undefined;
129
88
  }
89
+ getInternalContext() {
90
+ return this.checkedContext;
91
+ }
130
92
  createStreamListeners(context, identifyResolve) {
131
93
  const listeners = new Map();
132
94
  listeners.set('put', {
@@ -166,27 +128,6 @@ class LDClientImpl {
166
128
  });
167
129
  return listeners;
168
130
  }
169
- /**
170
- * Generates the url path for streaming.
171
- *
172
- * @protected This function must be overridden in subclasses for streaming
173
- * to work.
174
- * @param _context The LDContext object
175
- */
176
- createStreamUriPath(_context) {
177
- throw new Error('createStreamUriPath not implemented. Client sdks must implement createStreamUriPath for streaming to work.');
178
- }
179
- /**
180
- * Generates the url path for polling.
181
- * @param _context
182
- *
183
- * @protected This function must be overridden in subclasses for polling
184
- * to work.
185
- * @param _context The LDContext object
186
- */
187
- createPollUriPath(_context) {
188
- throw new Error('createPollUriPath not implemented. Client sdks must implement createPollUriPath for polling to work.');
189
- }
190
131
  createIdentifyPromise(timeout) {
191
132
  let res;
192
133
  let rej;
@@ -219,9 +160,7 @@ class LDClientImpl {
219
160
  * 3. A network error is encountered during initialization.
220
161
  */
221
162
  async identify(pristineContext, identifyOptions) {
222
- var _a, _b;
223
- // In offline mode we do not support waiting for results.
224
- const waitForNetworkResults = !!(identifyOptions === null || identifyOptions === void 0 ? void 0 : identifyOptions.waitForNetworkResults) && !this.isOffline();
163
+ var _a;
225
164
  if (identifyOptions === null || identifyOptions === void 0 ? void 0 : identifyOptions.timeout) {
226
165
  this.identifyTimeout = identifyOptions.timeout;
227
166
  }
@@ -245,67 +184,9 @@ class LDClientImpl {
245
184
  (_a = this.eventProcessor) === null || _a === void 0 ? void 0 : _a.sendEvent(this.eventFactoryDefault.identifyEvent(this.checkedContext));
246
185
  const { identifyPromise, identifyResolve, identifyReject } = this.createIdentifyPromise(this.identifyTimeout);
247
186
  this.logger.debug(`Identifying ${JSON.stringify(this.checkedContext)}`);
248
- const loadedFromCache = await this.flagManager.loadCached(this.checkedContext);
249
- if (loadedFromCache && !waitForNetworkResults) {
250
- this.logger.debug('Identify completing with cached flags');
251
- identifyResolve();
252
- }
253
- if (loadedFromCache && waitForNetworkResults) {
254
- this.logger.debug('Identify - Flags loaded from cache, but identify was requested with "waitForNetworkResults"');
255
- }
256
- if (this.isOffline()) {
257
- if (loadedFromCache) {
258
- this.logger.debug('Offline identify - using cached flags.');
259
- }
260
- else {
261
- this.logger.debug('Offline identify - no cached flags, using defaults or already loaded flags.');
262
- identifyResolve();
263
- }
264
- }
265
- else {
266
- (_b = this.updateProcessor) === null || _b === void 0 ? void 0 : _b.close();
267
- switch (this.getConnectionMode()) {
268
- case 'streaming':
269
- this.createStreamingProcessor(context, checkedContext, identifyResolve, identifyReject);
270
- break;
271
- case 'polling':
272
- this.createPollingProcessor(context, checkedContext, identifyResolve, identifyReject);
273
- break;
274
- default:
275
- break;
276
- }
277
- this.updateProcessor.start();
278
- }
187
+ await this.dataManager.identify(identifyResolve, identifyReject, checkedContext, identifyOptions);
279
188
  return identifyPromise;
280
189
  }
281
- createPollingProcessor(context, checkedContext, identifyResolve, identifyReject) {
282
- const parameters = [];
283
- if (this.config.withReasons) {
284
- parameters.push({ key: 'withReasons', value: 'true' });
285
- }
286
- this.updateProcessor = new PollingProcessor_1.default(this.sdkKey, this.clientContext.platform.requests, this.clientContext.platform.info, this.createPollUriPath(context), parameters, this.config, async (flags) => {
287
- this.logger.debug(`Handling polling result: ${Object.keys(flags)}`);
288
- // mapping flags to item descriptors
289
- const descriptors = Object.entries(flags).reduce((acc, [key, flag]) => {
290
- acc[key] = { version: flag.version, flag };
291
- return acc;
292
- }, {});
293
- await this.flagManager.init(checkedContext, descriptors).then(identifyResolve());
294
- }, (err) => {
295
- identifyReject(err);
296
- this.emitter.emit('error', context, err);
297
- });
298
- }
299
- createStreamingProcessor(context, checkedContext, identifyResolve, identifyReject) {
300
- const parameters = [];
301
- if (this.config.withReasons) {
302
- parameters.push({ key: 'withReasons', value: 'true' });
303
- }
304
- this.updateProcessor = new js_sdk_common_1.internal.StreamingProcessor(this.sdkKey, this.clientContext, this.createStreamUriPath(context), parameters, this.createStreamListeners(checkedContext, identifyResolve), this.diagnosticsManager, (e) => {
305
- identifyReject(e);
306
- this.emitter.emit('error', context, e);
307
- });
308
- }
309
190
  off(eventName, listener) {
310
191
  this.emitter.off(eventName, listener);
311
192
  }
@@ -322,7 +203,7 @@ class LDClientImpl {
322
203
  if (metricValue !== undefined && !js_sdk_common_1.TypeValidators.Number.is(metricValue)) {
323
204
  (_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn(ClientMessages.invalidMetricValue(typeof metricValue));
324
205
  }
325
- (_b = this.eventProcessor) === null || _b === void 0 ? void 0 : _b.sendEvent(this.eventFactoryDefault.customEvent(key, this.checkedContext, data, metricValue));
206
+ (_b = this.eventProcessor) === null || _b === void 0 ? void 0 : _b.sendEvent(this.config.trackEventModifier(this.eventFactoryDefault.customEvent(key, this.checkedContext, data, metricValue)));
326
207
  }
327
208
  variationInternal(flagKey, defaultValue, eventFactory, typeChecker) {
328
209
  var _a, _b, _c;
@@ -351,8 +232,8 @@ class LDClientImpl {
351
232
  }
352
233
  }
353
234
  const successDetail = (0, evaluationDetail_1.createSuccessEvaluationDetail)(value, variation, reason);
354
- if (variation === undefined || variation === null) {
355
- this.logger.debug('Result value is null in variation');
235
+ if (value === undefined || value === null) {
236
+ this.logger.debug('Result value is null. Providing default value.');
356
237
  successDetail.value = defaultValue;
357
238
  }
358
239
  (_c = this.eventProcessor) === null || _c === void 0 ? void 0 : _c.sendEvent(eventFactory.evalEventClient(flagKey, value, defaultValue, foundItem.flag, evalContext, reason));
@@ -410,17 +291,6 @@ class LDClientImpl {
410
291
  jsonVariationDetail(key, defaultValue) {
411
292
  return this.variationDetail(key, defaultValue);
412
293
  }
413
- /**
414
- * Inform the client of the network state. Can be used to modify connection behavior.
415
- *
416
- * For instance the implementation may choose to suppress errors from connections if the client
417
- * knows that there is no network available.
418
- * @param _available True when there is an available network.
419
- */
420
- setNetworkAvailability(available) {
421
- this.networkAvailable = available;
422
- // Not yet supported.
423
- }
424
294
  /**
425
295
  * Enable/Disable event sending.
426
296
  * @param enabled True to enable event processing, false to disable.
@@ -455,6 +325,10 @@ class LDClientImpl {
455
325
  (_d = this.eventProcessor) === null || _d === void 0 ? void 0 : _d.close();
456
326
  }
457
327
  }
328
+ sendEvent(event) {
329
+ var _a;
330
+ (_a = this.eventProcessor) === null || _a === void 0 ? void 0 : _a.sendEvent(event);
331
+ }
458
332
  }
459
333
  exports.default = LDClientImpl;
460
334
  //# sourceMappingURL=LDClientImpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDClientImpl.js","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LDClientImpl.js","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"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"}