@launchdarkly/js-client-sdk-common 1.24.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/LDClientImpl.d.ts +19 -8
- package/dist/cjs/LDClientImpl.d.ts.map +1 -1
- package/dist/cjs/api/LDStartOptions.d.ts +19 -0
- package/dist/cjs/api/LDStartOptions.d.ts.map +1 -0
- package/dist/cjs/api/index.d.ts +1 -0
- package/dist/cjs/api/index.d.ts.map +1 -1
- package/dist/cjs/configuration/Configuration.d.ts +10 -0
- package/dist/cjs/configuration/Configuration.d.ts.map +1 -1
- package/dist/cjs/datasource/fdv2/CacheInitializer.d.ts.map +1 -1
- package/dist/cjs/index.cjs +114 -55
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/esm/LDClientImpl.d.ts +19 -8
- package/dist/esm/LDClientImpl.d.ts.map +1 -1
- package/dist/esm/api/LDStartOptions.d.ts +19 -0
- package/dist/esm/api/LDStartOptions.d.ts.map +1 -0
- package/dist/esm/api/index.d.ts +1 -0
- package/dist/esm/api/index.d.ts.map +1 -1
- package/dist/esm/configuration/Configuration.d.ts +10 -0
- package/dist/esm/configuration/Configuration.d.ts.map +1 -1
- package/dist/esm/datasource/fdv2/CacheInitializer.d.ts.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.mjs +114 -55
- package/dist/esm/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import LDClientImpl from './LDClientImpl';
|
|
|
6
6
|
import LDEmitter, { EventName } from './LDEmitter';
|
|
7
7
|
export * from '@launchdarkly/js-sdk-common';
|
|
8
8
|
export * as platform from '@launchdarkly/js-sdk-common';
|
|
9
|
-
export type { LDEvaluationDetail, LDEvaluationDetailTyped, LDClient, LDOptions, ConnectionMode, LDIdentifyOptions, Hook, HookMetadata, EvaluationSeriesContext, EvaluationSeriesData, IdentifySeriesContext, IdentifySeriesData, IdentifySeriesResult, IdentifySeriesStatus, TrackSeriesContext, LDInspection, LDIdentifyResult, LDIdentifySuccess, LDIdentifyError, LDIdentifyTimeout, LDIdentifyShed, LDClientIdentifyResult, LDPluginBase, LDWaitForInitializationOptions, LDWaitForInitializationResult, LDWaitForInitializationComplete, LDWaitForInitializationFailed, LDWaitForInitializationTimeout, LDContext, LDContextStrict, } from './api';
|
|
9
|
+
export type { LDEvaluationDetail, LDEvaluationDetailTyped, LDClient, LDOptions, ConnectionMode, LDIdentifyOptions, Hook, HookMetadata, EvaluationSeriesContext, EvaluationSeriesData, IdentifySeriesContext, IdentifySeriesData, IdentifySeriesResult, IdentifySeriesStatus, TrackSeriesContext, LDInspection, LDIdentifyResult, LDIdentifySuccess, LDIdentifyError, LDIdentifyTimeout, LDIdentifyShed, LDClientIdentifyResult, LDPluginBase, LDWaitForInitializationOptions, LDWaitForInitializationResult, LDWaitForInitializationComplete, LDWaitForInitializationFailed, LDWaitForInitializationTimeout, LDStartOptions, LDContext, LDContextStrict, } from './api';
|
|
10
10
|
export type { DataManager, DataManagerFactory, ConnectionParams } from './DataManager';
|
|
11
11
|
export type { FlagManager, LDDebugOverride } from './flag-manager/FlagManager';
|
|
12
12
|
export { safeRegisterDebugOverridePlugins } from './plugins/safeRegisterDebugOverridePlugins';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,gBAAgB,EAAE,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,yBAAyB,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,cAAc,6BAA6B,CAAC;AAE5C,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AAMxD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,IAAI,EACJ,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,8BAA8B,EAC9B,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,cAAc,EACd,SAAS,EACT,eAAe,GAChB,MAAM,OAAO,CAAC;AAEf,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAC9F,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAE7E,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClG,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,SAAS,IAAI,kBAAkB,GAChC,CAAC;AAKF,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,4BAA4B,EAC5B,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAGpF,YAAY,EACV,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,wCAAwC,CAAC;AAGhD,YAAY,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAGxF,YAAY,EACV,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,YAAY,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,YAAY,EACZ,YAAY,EACZ,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { AutoEnvAttributes, Context, internal, LDFlagSet, LDFlagValue, LDLogger, LDPluginEnvironmentMetadata, Platform } from '@launchdarkly/js-sdk-common';
|
|
2
|
-
import { Hook, LDClient, LDClientIdentifyResult, LDContext, LDContextStrict, LDIdentifyResult, type LDOptions, LDWaitForInitializationOptions, LDWaitForInitializationResult } from './api';
|
|
2
|
+
import { Hook, LDClient, LDClientIdentifyResult, LDContext, LDContextStrict, LDIdentifyResult, type LDOptions, LDStartOptions, LDWaitForInitializationOptions, LDWaitForInitializationResult } from './api';
|
|
3
3
|
import { LDEvaluationDetail, LDEvaluationDetailTyped } from './api/LDEvaluationDetail';
|
|
4
4
|
import { LDIdentifyOptions } from './api/LDIdentifyOptions';
|
|
5
5
|
import { LDClientInternalOptions } from './configuration';
|
|
6
6
|
import { DataManager, DataManagerFactory } from './DataManager';
|
|
7
|
+
import type { InternalDataSystemOptions } from './datasource/LDClientDataSystemOptions';
|
|
7
8
|
import { LDDebugOverride } from './flag-manager/FlagManager';
|
|
8
9
|
import { ItemDescriptor } from './flag-manager/ItemDescriptor';
|
|
9
10
|
import LDEmitter, { EventName } from './LDEmitter';
|
|
@@ -24,6 +25,8 @@ export default class LDClientImpl implements LDClient, LDClientIdentifyResult {
|
|
|
24
25
|
private _eventSendingEnabled;
|
|
25
26
|
private _baseHeaders;
|
|
26
27
|
protected dataManager: DataManager;
|
|
28
|
+
protected readonly isFDv2: boolean;
|
|
29
|
+
protected readonly dataSystemConfig?: InternalDataSystemOptions;
|
|
27
30
|
protected readonly environmentMetadata: LDPluginEnvironmentMetadata;
|
|
28
31
|
private _hookRunner;
|
|
29
32
|
private _inspectorManager;
|
|
@@ -31,6 +34,9 @@ export default class LDClientImpl implements LDClient, LDClientIdentifyResult {
|
|
|
31
34
|
protected initializedPromise?: Promise<LDWaitForInitializationResult>;
|
|
32
35
|
protected initResolve?: (result: LDWaitForInitializationResult) => void;
|
|
33
36
|
protected initializeResult?: LDWaitForInitializationResult;
|
|
37
|
+
private _requiresStart;
|
|
38
|
+
protected initialContext?: LDContext;
|
|
39
|
+
protected startPromise?: Promise<LDWaitForInitializationResult>;
|
|
34
40
|
/**
|
|
35
41
|
* Creates the client object synchronously. No async, no network calls.
|
|
36
42
|
*/
|
|
@@ -51,6 +57,15 @@ export default class LDClientImpl implements LDClient, LDClientIdentifyResult {
|
|
|
51
57
|
protected presetFlags(newFlags: {
|
|
52
58
|
[key: string]: ItemDescriptor;
|
|
53
59
|
}): void;
|
|
60
|
+
/**
|
|
61
|
+
* Starts the client and returns a promise that resolves to the initialization result.
|
|
62
|
+
*
|
|
63
|
+
* This method is idempotent - calling it multiple times returns the same promise.
|
|
64
|
+
*
|
|
65
|
+
* @param options Optional configuration. See {@link LDStartOptions}.
|
|
66
|
+
* @returns A promise that resolves to the initialization result.
|
|
67
|
+
*/
|
|
68
|
+
start(options?: LDStartOptions): Promise<LDWaitForInitializationResult>;
|
|
54
69
|
/**
|
|
55
70
|
* Identifies a context to LaunchDarkly. See {@link LDClient.identify}.
|
|
56
71
|
*
|
|
@@ -84,18 +99,14 @@ export default class LDClientImpl implements LDClient, LDClientIdentifyResult {
|
|
|
84
99
|
protected maybeSetInitializationResult(result: LDWaitForInitializationResult): void;
|
|
85
100
|
waitForInitialization(options?: LDWaitForInitializationOptions): Promise<LDWaitForInitializationResult>;
|
|
86
101
|
/**
|
|
87
|
-
* Apply a timeout promise to a base promise. This is for use with waitForInitialization
|
|
102
|
+
* Apply a timeout promise to a base promise. This is for use with waitForInitialization
|
|
103
|
+
* and start.
|
|
88
104
|
*
|
|
89
105
|
* @param basePromise The promise to race against a timeout.
|
|
90
106
|
* @param timeout The timeout in seconds.
|
|
91
107
|
* @returns A promise that resolves to the initialization result or timeout.
|
|
92
|
-
*
|
|
93
|
-
* @privateRemarks
|
|
94
|
-
* This method is protected because it is used by the browser SDK's `start` method.
|
|
95
|
-
* Eventually, the start method will be moved to this common implementation and this method will
|
|
96
|
-
* be made private.
|
|
97
108
|
*/
|
|
98
|
-
|
|
109
|
+
private _promiseWithTimeout;
|
|
99
110
|
on(eventName: EventName, listener: Function): void;
|
|
100
111
|
off(eventName: EventName, listener: Function): void;
|
|
101
112
|
track(key: string, data?: any, metricValue?: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDClientImpl.d.ts","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGjB,OAAO,EAEP,QAAQ,EAER,SAAS,EACT,WAAW,EAEX,QAAQ,EACR,2BAA2B,EAE3B,QAAQ,EAET,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,sBAAsB,EACtB,SAAS,EACT,eAAe,EAEf,gBAAgB,EAIhB,KAAK,SAAS,EAGd,8BAA8B,EAC9B,6BAA6B,EAE9B,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAoC,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAO5F,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"LDClientImpl.d.ts","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LDIdentifyOptions } from './LDIdentifyOptions';
|
|
2
|
+
import { LDWaitForInitializationOptions } from './LDWaitForInitialization';
|
|
3
|
+
export interface LDStartOptions extends LDWaitForInitializationOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Optional bootstrap data to use for the identify operation.
|
|
6
|
+
* If {@link LDIdentifyOptions.bootstrap} is provided in identifyOptions, it takes precedence.
|
|
7
|
+
*/
|
|
8
|
+
bootstrap?: unknown;
|
|
9
|
+
/**
|
|
10
|
+
* Optional identify options to use for the identify operation.
|
|
11
|
+
* See {@link LDIdentifyOptions} for more information.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Since the first identify option should never be sheddable, the sheddable option is omitted
|
|
15
|
+
* from the interface to avoid confusion.
|
|
16
|
+
*/
|
|
17
|
+
identifyOptions?: Omit<LDIdentifyOptions, 'sheddable'>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=LDStartOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LDStartOptions.d.ts","sourceRoot":"","sources":["../../src/api/LDStartOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,WAAW,cAAe,SAAQ,8BAA8B;IACpE;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;CACxD"}
|
package/dist/esm/api/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './LDIdentifyOptions';
|
|
|
8
8
|
export * from './LDInspection';
|
|
9
9
|
export * from './LDIdentifyResult';
|
|
10
10
|
export * from './LDPlugin';
|
|
11
|
+
export * from './LDStartOptions';
|
|
11
12
|
export * from './LDWaitForInitialization';
|
|
12
13
|
export * from './LDContext';
|
|
13
14
|
export * from './datasource';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ApplicationTags, internal, LDFlagSet, LDLogger, LDPluginEnvironmentMetadata, ServiceEndpoints } from '@launchdarkly/js-sdk-common';
|
|
2
2
|
import { Hook, type LDOptions } from '../api';
|
|
3
|
+
import { LDContext } from '../api/LDContext';
|
|
3
4
|
import { LDInspection } from '../api/LDInspection';
|
|
4
5
|
import type { InternalDataSystemOptions, PlatformDataSystemDefaults } from '../datasource/LDClientDataSystemOptions';
|
|
5
6
|
export interface LDClientInternalOptions extends internal.LDInternalOptions {
|
|
@@ -8,6 +9,15 @@ export interface LDClientInternalOptions extends internal.LDInternalOptions {
|
|
|
8
9
|
credentialType: 'clientSideId' | 'mobileKey';
|
|
9
10
|
getLegacyStorageKeys?: () => string[];
|
|
10
11
|
dataSystemDefaults?: PlatformDataSystemDefaults;
|
|
12
|
+
/**
|
|
13
|
+
* When true, the SDK requires `start()` to be called before `identify()`.
|
|
14
|
+
* Set this value to `true` to use the new initialization pattern.
|
|
15
|
+
*/
|
|
16
|
+
requiresStart?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* The initial context to use when starting the client.
|
|
19
|
+
*/
|
|
20
|
+
initialContext?: LDContext;
|
|
11
21
|
}
|
|
12
22
|
export interface Configuration {
|
|
13
23
|
readonly logger: LDLogger;
|
|
@@ -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,EACT,QAAQ,EACR,2BAA2B,EAE3B,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AAMjD,MAAM,WAAW,uBAAwB,SAAQ,QAAQ,CAAC,iBAAiB;IACzE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,CAAC,gBAAgB,CAAC;IACrF,sBAAsB,EAAE,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,IAAI,EAAE,CAAC;IACrF,cAAc,EAAE,cAAc,GAAG,WAAW,CAAC;IAC7C,oBAAoB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IACtC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheInitializer.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/CacheInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,QAAQ,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"CacheInitializer.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/CacheInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,QAAQ,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAS3F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import LDClientImpl from './LDClientImpl';
|
|
|
6
6
|
import LDEmitter, { EventName } from './LDEmitter';
|
|
7
7
|
export * from '@launchdarkly/js-sdk-common';
|
|
8
8
|
export * as platform from '@launchdarkly/js-sdk-common';
|
|
9
|
-
export type { LDEvaluationDetail, LDEvaluationDetailTyped, LDClient, LDOptions, ConnectionMode, LDIdentifyOptions, Hook, HookMetadata, EvaluationSeriesContext, EvaluationSeriesData, IdentifySeriesContext, IdentifySeriesData, IdentifySeriesResult, IdentifySeriesStatus, TrackSeriesContext, LDInspection, LDIdentifyResult, LDIdentifySuccess, LDIdentifyError, LDIdentifyTimeout, LDIdentifyShed, LDClientIdentifyResult, LDPluginBase, LDWaitForInitializationOptions, LDWaitForInitializationResult, LDWaitForInitializationComplete, LDWaitForInitializationFailed, LDWaitForInitializationTimeout, LDContext, LDContextStrict, } from './api';
|
|
9
|
+
export type { LDEvaluationDetail, LDEvaluationDetailTyped, LDClient, LDOptions, ConnectionMode, LDIdentifyOptions, Hook, HookMetadata, EvaluationSeriesContext, EvaluationSeriesData, IdentifySeriesContext, IdentifySeriesData, IdentifySeriesResult, IdentifySeriesStatus, TrackSeriesContext, LDInspection, LDIdentifyResult, LDIdentifySuccess, LDIdentifyError, LDIdentifyTimeout, LDIdentifyShed, LDClientIdentifyResult, LDPluginBase, LDWaitForInitializationOptions, LDWaitForInitializationResult, LDWaitForInitializationComplete, LDWaitForInitializationFailed, LDWaitForInitializationTimeout, LDStartOptions, LDContext, LDContextStrict, } from './api';
|
|
10
10
|
export type { DataManager, DataManagerFactory, ConnectionParams } from './DataManager';
|
|
11
11
|
export type { FlagManager, LDDebugOverride } from './flag-manager/FlagManager';
|
|
12
12
|
export { safeRegisterDebugOverridePlugins } from './plugins/safeRegisterDebugOverridePlugins';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -999,6 +999,46 @@ class EventFactory extends internal.EventFactoryBase {
|
|
|
999
999
|
}
|
|
1000
1000
|
}
|
|
1001
1001
|
|
|
1002
|
+
function readFlagsFromBootstrap(logger, data) {
|
|
1003
|
+
// If the bootstrap data came from an older server-side SDK, we'll have just a map of keys to values.
|
|
1004
|
+
// Newer SDKs that have an allFlagsState method will provide an extra "$flagsState" key that contains
|
|
1005
|
+
// the rest of the metadata we want. We do it this way for backward compatibility with older JS SDKs.
|
|
1006
|
+
const keys = Object.keys(data);
|
|
1007
|
+
const metadataKey = '$flagsState';
|
|
1008
|
+
const validKey = '$valid';
|
|
1009
|
+
const metadata = data[metadataKey];
|
|
1010
|
+
if (!metadata && keys.length) {
|
|
1011
|
+
logger.warn('LaunchDarkly client was initialized with bootstrap data that did not include flag' +
|
|
1012
|
+
' metadata. Events may not be sent correctly.');
|
|
1013
|
+
}
|
|
1014
|
+
if (data[validKey] === false) {
|
|
1015
|
+
logger.warn('LaunchDarkly bootstrap data is not available because the back end could not read the flags.');
|
|
1016
|
+
}
|
|
1017
|
+
const ret = {};
|
|
1018
|
+
keys.forEach((key) => {
|
|
1019
|
+
if (key !== metadataKey && key !== validKey) {
|
|
1020
|
+
let flag;
|
|
1021
|
+
if (metadata && metadata[key]) {
|
|
1022
|
+
flag = {
|
|
1023
|
+
value: data[key],
|
|
1024
|
+
...metadata[key],
|
|
1025
|
+
};
|
|
1026
|
+
}
|
|
1027
|
+
else {
|
|
1028
|
+
flag = {
|
|
1029
|
+
value: data[key],
|
|
1030
|
+
version: 0,
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
1033
|
+
ret[key] = {
|
|
1034
|
+
version: flag.version,
|
|
1035
|
+
flag,
|
|
1036
|
+
};
|
|
1037
|
+
}
|
|
1038
|
+
});
|
|
1039
|
+
return ret;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1002
1042
|
/**
|
|
1003
1043
|
* Suffix appended to context storage keys to form the freshness storage key.
|
|
1004
1044
|
*/
|
|
@@ -1927,6 +1967,10 @@ class LDClientImpl {
|
|
|
1927
1967
|
this._eventFactoryWithReasons = new EventFactory(true);
|
|
1928
1968
|
this._eventSendingEnabled = false;
|
|
1929
1969
|
this._identifyQueue = createAsyncTaskQueue();
|
|
1970
|
+
// NOTE: this is used to ease the transition to the new initialization pattern.
|
|
1971
|
+
// All client SDKs should set this to true with the exception of React Native which is
|
|
1972
|
+
// still using the deprecated construct + identify pattern.
|
|
1973
|
+
this._requiresStart = false;
|
|
1930
1974
|
if (!sdkKey) {
|
|
1931
1975
|
throw new Error('You must configure the client with a client-side SDK key');
|
|
1932
1976
|
}
|
|
@@ -1935,6 +1979,8 @@ class LDClientImpl {
|
|
|
1935
1979
|
}
|
|
1936
1980
|
this._config = new ConfigurationImpl(options, internalOptions);
|
|
1937
1981
|
this.logger = this._config.logger;
|
|
1982
|
+
this._requiresStart = internalOptions?.requiresStart ?? false;
|
|
1983
|
+
this.initialContext = internalOptions?.initialContext;
|
|
1938
1984
|
this._baseHeaders = defaultHeaders(this.sdkKey, this.platform.info, this._config.tags, this._config.serviceEndpoints.includeAuthorizationHeader, this._config.userAgentHeaderName);
|
|
1939
1985
|
this._flagManager = new DefaultFlagManager(this.platform, sdkKey, this._config.maxCachedContexts, this._config.disableCache ?? false, this._config.logger);
|
|
1940
1986
|
this._diagnosticsManager = createDiagnosticsManager(sdkKey, this._config, platform);
|
|
@@ -1952,6 +1998,8 @@ class LDClientImpl {
|
|
|
1952
1998
|
});
|
|
1953
1999
|
});
|
|
1954
2000
|
this.dataManager = dataManagerFactory(this._flagManager, this._config, this._baseHeaders, this.emitter, this._diagnosticsManager);
|
|
2001
|
+
this.isFDv2 = !!this._config.dataSystem;
|
|
2002
|
+
this.dataSystemConfig = this._config.dataSystem;
|
|
1955
2003
|
const hooks = [...this._config.hooks];
|
|
1956
2004
|
this.environmentMetadata = createPluginEnvironmentMetadata(this.sdkKey, this.platform, this._config);
|
|
1957
2005
|
this._config.getImplementationHooks(this.environmentMetadata).forEach((hook) => {
|
|
@@ -2029,6 +2077,57 @@ class LDClientImpl {
|
|
|
2029
2077
|
presetFlags(newFlags) {
|
|
2030
2078
|
this._flagManager.presetFlags(newFlags);
|
|
2031
2079
|
}
|
|
2080
|
+
/**
|
|
2081
|
+
* Starts the client and returns a promise that resolves to the initialization result.
|
|
2082
|
+
*
|
|
2083
|
+
* This method is idempotent - calling it multiple times returns the same promise.
|
|
2084
|
+
*
|
|
2085
|
+
* @param options Optional configuration. See {@link LDStartOptions}.
|
|
2086
|
+
* @returns A promise that resolves to the initialization result.
|
|
2087
|
+
*/
|
|
2088
|
+
start(options) {
|
|
2089
|
+
if (this.initializeResult) {
|
|
2090
|
+
return Promise.resolve(this.initializeResult);
|
|
2091
|
+
}
|
|
2092
|
+
if (this.startPromise) {
|
|
2093
|
+
return this.startPromise;
|
|
2094
|
+
}
|
|
2095
|
+
if (!this.initialContext) {
|
|
2096
|
+
this.logger.error('Initial context not set');
|
|
2097
|
+
return Promise.resolve({ status: 'failed', error: new Error('Initial context not set') });
|
|
2098
|
+
}
|
|
2099
|
+
const identifyOptions = {
|
|
2100
|
+
...(options?.identifyOptions ?? {}),
|
|
2101
|
+
// Initial identify operations are not sheddable.
|
|
2102
|
+
sheddable: false,
|
|
2103
|
+
};
|
|
2104
|
+
// If the bootstrap data is provided in the start options, and the identify options do not
|
|
2105
|
+
// have bootstrap data, then use the bootstrap data from the start options.
|
|
2106
|
+
if (options?.bootstrap && !identifyOptions.bootstrap) {
|
|
2107
|
+
identifyOptions.bootstrap = options.bootstrap;
|
|
2108
|
+
}
|
|
2109
|
+
if (identifyOptions.bootstrap) {
|
|
2110
|
+
try {
|
|
2111
|
+
if (!identifyOptions.bootstrapParsed) {
|
|
2112
|
+
identifyOptions.bootstrapParsed = readFlagsFromBootstrap(this.logger, identifyOptions.bootstrap);
|
|
2113
|
+
}
|
|
2114
|
+
if (identifyOptions.bootstrapParsed) {
|
|
2115
|
+
this.presetFlags(identifyOptions.bootstrapParsed);
|
|
2116
|
+
}
|
|
2117
|
+
}
|
|
2118
|
+
catch (error) {
|
|
2119
|
+
this.logger.error('Failed to bootstrap data', error);
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
if (!this.initializedPromise) {
|
|
2123
|
+
this.initializedPromise = new Promise((resolve) => {
|
|
2124
|
+
this.initResolve = resolve;
|
|
2125
|
+
});
|
|
2126
|
+
}
|
|
2127
|
+
this.startPromise = this._promiseWithTimeout(this.initializedPromise, options?.timeout ?? 5, 'start');
|
|
2128
|
+
this.identifyResult(this.initialContext, identifyOptions);
|
|
2129
|
+
return this.startPromise;
|
|
2130
|
+
}
|
|
2032
2131
|
/**
|
|
2033
2132
|
* Identifies a context to LaunchDarkly. See {@link LDClient.identify}.
|
|
2034
2133
|
*
|
|
@@ -2066,6 +2165,10 @@ class LDClientImpl {
|
|
|
2066
2165
|
// If completed or shed, then we are done.
|
|
2067
2166
|
}
|
|
2068
2167
|
async identifyResult(pristineContext, identifyOptions) {
|
|
2168
|
+
if (this._requiresStart && !this.startPromise) {
|
|
2169
|
+
this.logger.error('The client must be started before a context can be identified. Call start() prior to identifying a context.');
|
|
2170
|
+
return { status: 'error', error: new Error('Identify called before start') };
|
|
2171
|
+
}
|
|
2069
2172
|
const identifyTimeout = identifyOptions?.timeout ?? DEFAULT_IDENTIFY_TIMEOUT_SECONDS;
|
|
2070
2173
|
const noTimeout = identifyOptions?.timeout === undefined && identifyOptions?.noTimeout === true;
|
|
2071
2174
|
// When noTimeout is specified, and a timeout is not specified, then this condition cannot
|
|
@@ -2175,7 +2278,7 @@ class LDClientImpl {
|
|
|
2175
2278
|
// If waitForInitialization was previously called, then return the promise with a timeout.
|
|
2176
2279
|
// This condition should only be triggered if waitForInitialization was called multiple times.
|
|
2177
2280
|
if (this.initializedPromise) {
|
|
2178
|
-
return this.
|
|
2281
|
+
return this._promiseWithTimeout(this.initializedPromise, timeout);
|
|
2179
2282
|
}
|
|
2180
2283
|
// Create a new promise for tracking initialization
|
|
2181
2284
|
if (!this.initializedPromise) {
|
|
@@ -2183,22 +2286,18 @@ class LDClientImpl {
|
|
|
2183
2286
|
this.initResolve = resolve;
|
|
2184
2287
|
});
|
|
2185
2288
|
}
|
|
2186
|
-
return this.
|
|
2289
|
+
return this._promiseWithTimeout(this.initializedPromise, timeout);
|
|
2187
2290
|
}
|
|
2188
2291
|
/**
|
|
2189
|
-
* Apply a timeout promise to a base promise. This is for use with waitForInitialization
|
|
2292
|
+
* Apply a timeout promise to a base promise. This is for use with waitForInitialization
|
|
2293
|
+
* and start.
|
|
2190
2294
|
*
|
|
2191
2295
|
* @param basePromise The promise to race against a timeout.
|
|
2192
2296
|
* @param timeout The timeout in seconds.
|
|
2193
2297
|
* @returns A promise that resolves to the initialization result or timeout.
|
|
2194
|
-
*
|
|
2195
|
-
* @privateRemarks
|
|
2196
|
-
* This method is protected because it is used by the browser SDK's `start` method.
|
|
2197
|
-
* Eventually, the start method will be moved to this common implementation and this method will
|
|
2198
|
-
* be made private.
|
|
2199
2298
|
*/
|
|
2200
|
-
|
|
2201
|
-
const cancelableTimeout = cancelableTimedPromise(timeout,
|
|
2299
|
+
_promiseWithTimeout(basePromise, timeout, label = 'waitForInitialization') {
|
|
2300
|
+
const cancelableTimeout = cancelableTimedPromise(timeout, label);
|
|
2202
2301
|
return Promise.race([
|
|
2203
2302
|
basePromise.then((res) => {
|
|
2204
2303
|
cancelableTimeout.cancel();
|
|
@@ -2428,46 +2527,6 @@ function safeRegisterDebugOverridePlugins(logger, debugOverride, plugins) {
|
|
|
2428
2527
|
});
|
|
2429
2528
|
}
|
|
2430
2529
|
|
|
2431
|
-
function readFlagsFromBootstrap(logger, data) {
|
|
2432
|
-
// If the bootstrap data came from an older server-side SDK, we'll have just a map of keys to values.
|
|
2433
|
-
// Newer SDKs that have an allFlagsState method will provide an extra "$flagsState" key that contains
|
|
2434
|
-
// the rest of the metadata we want. We do it this way for backward compatibility with older JS SDKs.
|
|
2435
|
-
const keys = Object.keys(data);
|
|
2436
|
-
const metadataKey = '$flagsState';
|
|
2437
|
-
const validKey = '$valid';
|
|
2438
|
-
const metadata = data[metadataKey];
|
|
2439
|
-
if (!metadata && keys.length) {
|
|
2440
|
-
logger.warn('LaunchDarkly client was initialized with bootstrap data that did not include flag' +
|
|
2441
|
-
' metadata. Events may not be sent correctly.');
|
|
2442
|
-
}
|
|
2443
|
-
if (data[validKey] === false) {
|
|
2444
|
-
logger.warn('LaunchDarkly bootstrap data is not available because the back end could not read the flags.');
|
|
2445
|
-
}
|
|
2446
|
-
const ret = {};
|
|
2447
|
-
keys.forEach((key) => {
|
|
2448
|
-
if (key !== metadataKey && key !== validKey) {
|
|
2449
|
-
let flag;
|
|
2450
|
-
if (metadata && metadata[key]) {
|
|
2451
|
-
flag = {
|
|
2452
|
-
value: data[key],
|
|
2453
|
-
...metadata[key],
|
|
2454
|
-
};
|
|
2455
|
-
}
|
|
2456
|
-
else {
|
|
2457
|
-
flag = {
|
|
2458
|
-
value: data[key],
|
|
2459
|
-
version: 0,
|
|
2460
|
-
};
|
|
2461
|
-
}
|
|
2462
|
-
ret[key] = {
|
|
2463
|
-
version: flag.version,
|
|
2464
|
-
flag,
|
|
2465
|
-
};
|
|
2466
|
-
}
|
|
2467
|
-
});
|
|
2468
|
-
return ret;
|
|
2469
|
-
}
|
|
2470
|
-
|
|
2471
2530
|
/**
|
|
2472
2531
|
* Creates endpoint paths for browser (client-side ID) FDv1 evaluation.
|
|
2473
2532
|
*
|
|
@@ -3190,12 +3249,12 @@ async function loadFromCache(config) {
|
|
|
3190
3249
|
const { storage, crypto, environmentNamespace, context, logger } = config;
|
|
3191
3250
|
if (!storage) {
|
|
3192
3251
|
logger?.debug('No storage available for cache initializer');
|
|
3193
|
-
return
|
|
3252
|
+
return changeSet({ version: 0, type: 'none', updates: [] }, false);
|
|
3194
3253
|
}
|
|
3195
3254
|
const cached = await loadCachedFlags(storage, crypto, environmentNamespace, context, logger);
|
|
3196
3255
|
if (!cached) {
|
|
3197
3256
|
logger?.debug('Cache miss for context');
|
|
3198
|
-
return
|
|
3257
|
+
return changeSet({ version: 0, type: 'none', updates: [] }, false);
|
|
3199
3258
|
}
|
|
3200
3259
|
const updates = Object.entries(cached.flags).map(([key, flag]) => ({
|
|
3201
3260
|
kind: 'flag-eval',
|
|
@@ -4456,16 +4515,16 @@ function createFDv2DataSource(config) {
|
|
|
4456
4515
|
if (closed) {
|
|
4457
4516
|
return;
|
|
4458
4517
|
}
|
|
4459
|
-
if (result.type === 'changeSet') {
|
|
4518
|
+
if (result.type === 'changeSet' && result.payload.type !== 'none') {
|
|
4460
4519
|
applyChangeSet(result);
|
|
4461
4520
|
if (handleFdv1Fallback(result)) {
|
|
4462
|
-
// FDv1 fallback triggered during initialization
|
|
4521
|
+
// FDv1 fallback triggered during initialization -- data was received
|
|
4463
4522
|
// but we should move to synchronizers where the FDv1 adapter will run.
|
|
4464
4523
|
dataReceived = true;
|
|
4465
4524
|
break;
|
|
4466
4525
|
}
|
|
4467
4526
|
if (result.payload.state) {
|
|
4468
|
-
// Got basis data with a selector
|
|
4527
|
+
// Got basis data with a selector -- initialization is complete.
|
|
4469
4528
|
markInitialized();
|
|
4470
4529
|
return;
|
|
4471
4530
|
}
|