@launchdarkly/js-client-sdk-common 1.22.0 → 1.23.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 +16 -0
- package/dist/cjs/DataManager.d.ts +24 -0
- package/dist/cjs/DataManager.d.ts.map +1 -1
- package/dist/cjs/api/datasource/DataSourceEntry.d.ts +11 -0
- package/dist/cjs/api/datasource/DataSourceEntry.d.ts.map +1 -1
- package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts +22 -0
- package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
- package/dist/cjs/api/datasource/ModeDefinition.d.ts +3 -3
- package/dist/cjs/api/datasource/ModeDefinition.d.ts.map +1 -1
- package/dist/cjs/api/datasource/index.d.ts +1 -1
- package/dist/cjs/api/datasource/index.d.ts.map +1 -1
- package/dist/cjs/datasource/ConnectionModeConfig.d.ts.map +1 -1
- package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts +1 -0
- package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
- package/dist/cjs/datasource/SourceFactoryProvider.d.ts +77 -0
- package/dist/cjs/datasource/SourceFactoryProvider.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/FDv2DataSource.d.ts.map +1 -1
- package/dist/cjs/flag-manager/FlagManager.d.ts +16 -1
- package/dist/cjs/flag-manager/FlagManager.d.ts.map +1 -1
- package/dist/cjs/flag-manager/FlagPersistence.d.ts +13 -1
- package/dist/cjs/flag-manager/FlagPersistence.d.ts.map +1 -1
- package/dist/cjs/flag-manager/FlagStore.d.ts +10 -0
- package/dist/cjs/flag-manager/FlagStore.d.ts.map +1 -1
- package/dist/cjs/flag-manager/FlagUpdater.d.ts +13 -1
- package/dist/cjs/flag-manager/FlagUpdater.d.ts.map +1 -1
- package/dist/cjs/index.cjs +1130 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +6 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/types/index.d.ts +2 -2
- package/dist/esm/DataManager.d.ts +24 -0
- package/dist/esm/DataManager.d.ts.map +1 -1
- package/dist/esm/api/datasource/DataSourceEntry.d.ts +11 -0
- package/dist/esm/api/datasource/DataSourceEntry.d.ts.map +1 -1
- package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts +22 -0
- package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
- package/dist/esm/api/datasource/ModeDefinition.d.ts +3 -3
- package/dist/esm/api/datasource/ModeDefinition.d.ts.map +1 -1
- package/dist/esm/api/datasource/index.d.ts +1 -1
- package/dist/esm/api/datasource/index.d.ts.map +1 -1
- package/dist/esm/datasource/ConnectionModeConfig.d.ts.map +1 -1
- package/dist/esm/datasource/LDClientDataSystemOptions.d.ts +1 -0
- package/dist/esm/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
- package/dist/esm/datasource/SourceFactoryProvider.d.ts +77 -0
- package/dist/esm/datasource/SourceFactoryProvider.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/FDv2DataSource.d.ts.map +1 -1
- package/dist/esm/flag-manager/FlagManager.d.ts +16 -1
- package/dist/esm/flag-manager/FlagManager.d.ts.map +1 -1
- package/dist/esm/flag-manager/FlagPersistence.d.ts +13 -1
- package/dist/esm/flag-manager/FlagPersistence.d.ts.map +1 -1
- package/dist/esm/flag-manager/FlagStore.d.ts +10 -0
- package/dist/esm/flag-manager/FlagStore.d.ts.map +1 -1
- package/dist/esm/flag-manager/FlagUpdater.d.ts +13 -1
- package/dist/esm/flag-manager/FlagUpdater.d.ts.map +1 -1
- package/dist/esm/index.d.ts +6 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.mjs +1128 -4
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/types/index.d.ts +2 -2
- package/package.json +2 -2
|
@@ -13,6 +13,7 @@ export interface EndpointConfig {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Configuration for a cache data source entry.
|
|
16
|
+
* Cache is only valid as an initializer (not a synchronizer).
|
|
16
17
|
*/
|
|
17
18
|
export interface CacheDataSourceEntry {
|
|
18
19
|
readonly type: 'cache';
|
|
@@ -37,6 +38,16 @@ export interface StreamingDataSourceEntry {
|
|
|
37
38
|
/** Endpoint overrides for this streaming source. */
|
|
38
39
|
readonly endpoints?: EndpointConfig;
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* An entry in the initializers list of a mode definition. Initializers
|
|
43
|
+
* can be cache, polling, or streaming sources.
|
|
44
|
+
*/
|
|
45
|
+
export type InitializerEntry = CacheDataSourceEntry | PollingDataSourceEntry | StreamingDataSourceEntry;
|
|
46
|
+
/**
|
|
47
|
+
* An entry in the synchronizers list of a mode definition. Synchronizers
|
|
48
|
+
* can be polling or streaming sources (not cache).
|
|
49
|
+
*/
|
|
50
|
+
export type SynchronizerEntry = PollingDataSourceEntry | StreamingDataSourceEntry;
|
|
40
51
|
/**
|
|
41
52
|
* A data source entry in a mode table. Each entry identifies a data source type
|
|
42
53
|
* and carries type-specific configuration overrides.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSourceEntry.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/DataSourceEntry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2FAA2F;IAC3F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED
|
|
1
|
+
{"version":3,"file":"DataSourceEntry.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/DataSourceEntry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2FAA2F;IAC3F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,4DAA4D;IAC5D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAExC,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,sBAAsB,GACtB,wBAAwB,CAAC;AAE7B;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;AAElF;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,sBAAsB,GACtB,wBAAwB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import FDv2ConnectionMode from './FDv2ConnectionMode';
|
|
2
|
+
import { ModeDefinition } from './ModeDefinition';
|
|
2
3
|
/**
|
|
3
4
|
* Configuration for the FDv2 client-side data system.
|
|
4
5
|
*/
|
|
@@ -41,6 +42,27 @@ export interface LDClientDataSystemOptions {
|
|
|
41
42
|
* Default is true for mobile SDKs, false/ignored for browser.
|
|
42
43
|
*/
|
|
43
44
|
automaticModeSwitching?: boolean | AutomaticModeSwitchingConfig;
|
|
45
|
+
/**
|
|
46
|
+
* Override the data source pipeline for specific connection modes.
|
|
47
|
+
*
|
|
48
|
+
* Each key is a connection mode name (`'streaming'`, `'polling'`, `'offline'`,
|
|
49
|
+
* `'one-shot'`, `'background'`). The value defines the initializers and
|
|
50
|
+
* synchronizers for that mode, replacing the built-in defaults.
|
|
51
|
+
*
|
|
52
|
+
* Only the modes you specify are overridden — unspecified modes retain
|
|
53
|
+
* their built-in definitions.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```
|
|
57
|
+
* connectionModes: {
|
|
58
|
+
* streaming: {
|
|
59
|
+
* initializers: [{ type: 'polling' }],
|
|
60
|
+
* synchronizers: [{ type: 'streaming' }],
|
|
61
|
+
* },
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
connectionModes?: Partial<Record<FDv2ConnectionMode, ModeDefinition>>;
|
|
44
66
|
}
|
|
45
67
|
/**
|
|
46
68
|
* Granular control over which platform events trigger automatic mode switches.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDClientDataSystemOptions.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/LDClientDataSystemOptions.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"LDClientDataSystemOptions.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/LDClientDataSystemOptions.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAE3C;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;IAE9C;;;;;;;;;;;;;OAaG;IACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,4BAA4B,CAAC;IAEhE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;IACnD,sDAAsD;IACtD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;IACvD,8DAA8D;IAC9D,QAAQ,CAAC,sBAAsB,EAAE,OAAO,GAAG,4BAA4B,CAAC;CACzE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InitializerEntry, SynchronizerEntry } from './DataSourceEntry';
|
|
2
2
|
/**
|
|
3
3
|
* Defines the data pipeline for a connection mode: which data sources
|
|
4
4
|
* are used during initialization and which are used for ongoing synchronization.
|
|
@@ -9,13 +9,13 @@ export interface ModeDefinition {
|
|
|
9
9
|
* Sources are tried in order; the first that successfully provides a full
|
|
10
10
|
* data set transitions the SDK out of the initialization phase.
|
|
11
11
|
*/
|
|
12
|
-
readonly initializers: ReadonlyArray<
|
|
12
|
+
readonly initializers: ReadonlyArray<InitializerEntry>;
|
|
13
13
|
/**
|
|
14
14
|
* Ordered list of data sources for ongoing synchronization after
|
|
15
15
|
* initialization completes. Sources are in priority order with automatic
|
|
16
16
|
* failover to the next source if the primary fails.
|
|
17
17
|
* An empty array means no synchronization occurs (e.g., offline, one-shot).
|
|
18
18
|
*/
|
|
19
|
-
readonly synchronizers: ReadonlyArray<
|
|
19
|
+
readonly synchronizers: ReadonlyArray<SynchronizerEntry>;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=ModeDefinition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModeDefinition.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/ModeDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ModeDefinition.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/ModeDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAC1D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { default as FDv2ConnectionMode } from './FDv2ConnectionMode';
|
|
2
|
-
export type { EndpointConfig, CacheDataSourceEntry, PollingDataSourceEntry, StreamingDataSourceEntry, DataSourceEntry, } from './DataSourceEntry';
|
|
2
|
+
export type { EndpointConfig, CacheDataSourceEntry, PollingDataSourceEntry, StreamingDataSourceEntry, InitializerEntry, SynchronizerEntry, DataSourceEntry, } from './DataSourceEntry';
|
|
3
3
|
export type { ModeDefinition } from './ModeDefinition';
|
|
4
4
|
export type { LDClientDataSystemOptions, AutomaticModeSwitchingConfig, PlatformDataSystemDefaults, } from './LDClientDataSystemOptions';
|
|
5
5
|
export type { LifecycleState, ModeState, ConfiguredMode, ModeResolution, ModeResolutionEntry, ModeResolutionTable, } from './ModeResolution';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EACV,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/datasource/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EACV,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionModeConfig.d.ts","sourceRoot":"","sources":["../../src/datasource/ConnectionModeConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5E;;GAEG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,CAAC,IAAI,kBAAkB,GAAG,cAAc;CACnD,CAAC;AAEF,QAAA,MAAM,gCAAgC,OAAO,CAAC;AAG9C,QAAA,MAAM,uBAAuB,6CAM5B,CAAC;
|
|
1
|
+
{"version":3,"file":"ConnectionModeConfig.d.ts","sourceRoot":"","sources":["../../src/datasource/ConnectionModeConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5E;;GAEG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,CAAC,IAAI,kBAAkB,GAAG,cAAc;CACnD,CAAC;AAEF,QAAA,MAAM,gCAAgC,OAAO,CAAC;AAG9C,QAAA,MAAM,uBAAuB,6CAM5B,CAAC;AAkCF,QAAA,MAAM,wBAAwB;;;CAG7B,CAAC;AAEF,QAAA,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGrD,CAAC;AAEF,QAAA,MAAM,wBAAwB,8DAG7B,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,SAqBjB,CAAC;AAEF,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,GACzB,CAAC"}
|
|
@@ -3,6 +3,7 @@ declare const dataSystemValidators: {
|
|
|
3
3
|
initialConnectionMode: import("@launchdarkly/js-sdk-common").OneOf;
|
|
4
4
|
backgroundConnectionMode: import("@launchdarkly/js-sdk-common").OneOf;
|
|
5
5
|
automaticModeSwitching: import("../configuration/validateOptions").CompoundValidator;
|
|
6
|
+
connectionModes: import("../configuration/validateOptions").CompoundValidator;
|
|
6
7
|
};
|
|
7
8
|
/**
|
|
8
9
|
* Default FDv2 data system configuration for browser SDKs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDClientDataSystemOptions.d.ts","sourceRoot":"","sources":["../../src/datasource/LDClientDataSystemOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AASpE,QAAA,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"LDClientDataSystemOptions.d.ts","sourceRoot":"","sources":["../../src/datasource/LDClientDataSystemOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AASpE,QAAA,MAAM,oBAAoB;;;;;CAKzB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,4BAA4B,EAAE,0BAInC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,2BAA2B,EAAE,0BAIlC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,4BAA4B,EAAE,0BAInC,CAAC;AAEF,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,GAC7B,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Context, Crypto, Encoding, LDHeaders, LDLogger, Requests, ServiceEndpoints, Storage } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
import { InitializerEntry, SynchronizerEntry } from '../api/datasource';
|
|
3
|
+
import { DataSourcePaths } from './DataSourceConfig';
|
|
4
|
+
import { FDv2Requestor } from './fdv2/FDv2Requestor';
|
|
5
|
+
import { InitializerFactory, SynchronizerSlot } from './fdv2/SourceManager';
|
|
6
|
+
/**
|
|
7
|
+
* Context needed to create concrete initializer/synchronizer factories
|
|
8
|
+
* for a given identify call. Built once per identify and reused across
|
|
9
|
+
* mode switches.
|
|
10
|
+
*/
|
|
11
|
+
export interface SourceFactoryContext {
|
|
12
|
+
/** The FDv2 requestor for polling requests. */
|
|
13
|
+
requestor: FDv2Requestor;
|
|
14
|
+
/** Platform request abstraction. */
|
|
15
|
+
requests: Requests;
|
|
16
|
+
/** Platform encoding abstraction. */
|
|
17
|
+
encoding: Encoding;
|
|
18
|
+
/** Service endpoint configuration. */
|
|
19
|
+
serviceEndpoints: ServiceEndpoints;
|
|
20
|
+
/** Default HTTP headers. */
|
|
21
|
+
baseHeaders: LDHeaders;
|
|
22
|
+
/** Query parameters for requests (e.g., auth, secure mode hash). */
|
|
23
|
+
queryParams: {
|
|
24
|
+
key: string;
|
|
25
|
+
value: string;
|
|
26
|
+
}[];
|
|
27
|
+
/** JSON-serialized evaluation context. */
|
|
28
|
+
plainContextString: string;
|
|
29
|
+
/** Logger. */
|
|
30
|
+
logger: LDLogger;
|
|
31
|
+
/** Polling-specific configuration. */
|
|
32
|
+
polling: {
|
|
33
|
+
/** The polling endpoint paths. */
|
|
34
|
+
paths: DataSourcePaths;
|
|
35
|
+
/** Default poll interval in seconds. */
|
|
36
|
+
intervalSeconds: number;
|
|
37
|
+
};
|
|
38
|
+
/** Streaming-specific configuration. */
|
|
39
|
+
streaming: {
|
|
40
|
+
/** The streaming endpoint paths. */
|
|
41
|
+
paths: DataSourcePaths;
|
|
42
|
+
/** Default initial reconnect delay in seconds. */
|
|
43
|
+
initialReconnectDelaySeconds: number;
|
|
44
|
+
};
|
|
45
|
+
/** Platform storage for reading cached data. */
|
|
46
|
+
storage: Storage | undefined;
|
|
47
|
+
/** Platform crypto for computing storage keys. */
|
|
48
|
+
crypto: Crypto;
|
|
49
|
+
/** Environment namespace (hashed SDK key). */
|
|
50
|
+
environmentNamespace: string;
|
|
51
|
+
/** The context being identified. */
|
|
52
|
+
context: Context;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Converts declarative {@link InitializerEntry} and {@link SynchronizerEntry}
|
|
56
|
+
* descriptors from the mode table into concrete {@link InitializerFactory}
|
|
57
|
+
* and {@link SynchronizerSlot} instances that the {@link FDv2DataSource}
|
|
58
|
+
* orchestrator can use.
|
|
59
|
+
*/
|
|
60
|
+
export interface SourceFactoryProvider {
|
|
61
|
+
/**
|
|
62
|
+
* Create an initializer factory from an initializer entry descriptor.
|
|
63
|
+
* Returns `undefined` if the entry type is not supported.
|
|
64
|
+
*/
|
|
65
|
+
createInitializerFactory(entry: InitializerEntry, ctx: SourceFactoryContext): InitializerFactory | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Create a synchronizer slot from a synchronizer entry descriptor.
|
|
68
|
+
* Returns `undefined` if the entry type is not supported.
|
|
69
|
+
*/
|
|
70
|
+
createSynchronizerSlot(entry: SynchronizerEntry, ctx: SourceFactoryContext): SynchronizerSlot | undefined;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates a {@link SourceFactoryProvider} that handles `cache`, `polling`,
|
|
74
|
+
* and `streaming` data source entries.
|
|
75
|
+
*/
|
|
76
|
+
export declare function createDefaultSourceFactoryProvider(): SourceFactoryProvider;
|
|
77
|
+
//# sourceMappingURL=SourceFactoryProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceFactoryProvider.d.ts","sourceRoot":"","sources":["../../src/datasource/SourceFactoryProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACR,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAkB,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AAIxE,OAAO,EAA0B,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAKpG;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,SAAS,EAAE,aAAa,CAAC;IACzB,oCAAoC;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,sCAAsC;IACtC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,4BAA4B;IAC5B,WAAW,EAAE,SAAS,CAAC;IACvB,oEAAoE;IACpE,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc;IACd,MAAM,EAAE,QAAQ,CAAC;IAEjB,sCAAsC;IACtC,OAAO,EAAE;QACP,kCAAkC;QAClC,KAAK,EAAE,eAAe,CAAC;QACvB,wCAAwC;QACxC,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,wCAAwC;IACxC,SAAS,EAAE;QACT,oCAAoC;QACpC,KAAK,EAAE,eAAe,CAAC;QACvB,kDAAkD;QAClD,4BAA4B,EAAE,MAAM,CAAC;KACtC,CAAC;IAGF,gDAAgD;IAChD,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,wBAAwB,CACtB,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,oBAAoB,GACxB,kBAAkB,GAAG,SAAS,CAAC;IAElC;;;OAGG;IACH,sBAAsB,CACpB,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,oBAAoB,GACxB,gBAAgB,GAAG,SAAS,CAAC;CACjC;AAkFD;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,qBAAqB,CAuD1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FDv2DataSource.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/FDv2DataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AASrE,OAAO,EAAuB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5F;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAE3C,qDAAqD;IACrD,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAEtC,2DAA2D;IAC3D,YAAY,EAAE,YAAY,CAAC;IAE3B,kEAAkE;IAClE,aAAa,EAAE,uBAAuB,CAAC;IAEvC;;;;OAIG;IACH,cAAc,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAEzC,uBAAuB;IACvB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,wDAAwD;IACxD,KAAK,IAAI,IAAI,CAAC;CACf;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"FDv2DataSource.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/FDv2DataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AASrE,OAAO,EAAuB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5F;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAE3C,qDAAqD;IACrD,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAEtC,2DAA2D;IAC3D,YAAY,EAAE,YAAY,CAAC;IAE3B,kEAAkE;IAClE,aAAa,EAAE,uBAAuB,CAAC;IAEvC;;;;OAIG;IACH,cAAc,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAEzC,uBAAuB;IACvB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,wDAAwD;IACxD,KAAK,IAAI,IAAI,CAAC;CACf;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CA8QjF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Context, LDFlagValue, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
|
|
1
|
+
import { Context, internal, LDFlagValue, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
|
|
2
2
|
import { FlagsChangeCallback } from './FlagUpdater';
|
|
3
3
|
import { ItemDescriptor } from './ItemDescriptor';
|
|
4
4
|
/**
|
|
@@ -51,6 +51,18 @@ export interface FlagManager {
|
|
|
51
51
|
setBootstrap(context: Context, newFlags: {
|
|
52
52
|
[key: string]: ItemDescriptor;
|
|
53
53
|
}): void;
|
|
54
|
+
/**
|
|
55
|
+
* Applies a changeset to the flag store.
|
|
56
|
+
* - `'full'`: replaces all flags (like {@link init}).
|
|
57
|
+
* - `'partial'`: upserts individual flags (like calling {@link upsert} for each entry).
|
|
58
|
+
* - `'none'`: persists cache (updating freshness) without changing any flags.
|
|
59
|
+
*
|
|
60
|
+
* Designed for the FDv2 data path where init/upsert semantics, selector
|
|
61
|
+
* tracking, and freshness updates are all handled in one call.
|
|
62
|
+
*/
|
|
63
|
+
applyChanges(context: Context, updates: {
|
|
64
|
+
[key: string]: ItemDescriptor;
|
|
65
|
+
}, type: internal.PayloadType): Promise<void>;
|
|
54
66
|
/**
|
|
55
67
|
* Register a flag change callback.
|
|
56
68
|
*/
|
|
@@ -137,6 +149,9 @@ export default class DefaultFlagManager implements FlagManager {
|
|
|
137
149
|
}): Promise<void>;
|
|
138
150
|
upsert(context: Context, key: string, item: ItemDescriptor): Promise<boolean>;
|
|
139
151
|
loadCached(context: Context): Promise<boolean>;
|
|
152
|
+
applyChanges(context: Context, updates: {
|
|
153
|
+
[key: string]: ItemDescriptor;
|
|
154
|
+
}, type: internal.PayloadType): Promise<void>;
|
|
140
155
|
on(callback: FlagsChangeCallback): void;
|
|
141
156
|
off(callback: FlagsChangeCallback): void;
|
|
142
157
|
private _convertValueToOverrideDescripter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Context, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
|
|
1
|
+
import { Context, internal, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
|
|
2
2
|
import FlagStore from './FlagStore';
|
|
3
3
|
import { FlagUpdater } from './FlagUpdater';
|
|
4
4
|
import { ItemDescriptor } from './ItemDescriptor';
|
|
@@ -38,6 +38,18 @@ export default class FlagPersistence {
|
|
|
38
38
|
* the active context.
|
|
39
39
|
*/
|
|
40
40
|
upsert(context: Context, key: string, item: ItemDescriptor): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Applies a changeset to the flag store.
|
|
43
|
+
* - `'full'`: replaces all flags via {@link FlagUpdater.init}.
|
|
44
|
+
* - `'partial'`: upserts individual flags via {@link FlagUpdater.upsert}.
|
|
45
|
+
* - `'none'`: no flag changes, only persists cache to update freshness.
|
|
46
|
+
*
|
|
47
|
+
* Always persists to cache afterwards, which updates the freshness timestamp
|
|
48
|
+
* even when no flags change (e.g., transfer-none).
|
|
49
|
+
*/
|
|
50
|
+
applyChanges(context: Context, updates: {
|
|
51
|
+
[key: string]: ItemDescriptor;
|
|
52
|
+
}, type: internal.PayloadType): Promise<void>;
|
|
41
53
|
/**
|
|
42
54
|
* Loads the flags from persistence for the provided context and gives those to the
|
|
43
55
|
* {@link FlagUpdater} this {@link FlagPersistence} was constructed with.
|
|
@@ -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;
|
|
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,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOpF,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAMhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAkB;gBAGvB,SAAS,EAAE,QAAQ,EACnB,qBAAqB,EAAE,MAAM,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,SAAS,EACrB,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,QAAQ,EACjB,YAAY,GAAE,MAAM,MAAyB;IAKhE;;;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;;;;;;;;OAQG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,EAC1C,IAAI,EAAE,QAAQ,CAAC,WAAW,GACzB,OAAO,CAAC,IAAI,CAAC;IAKhB;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAuCtC,eAAe;YAiBf,UAAU;YAqBV,WAAW;CAuD1B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { internal } from '@launchdarkly/js-sdk-common';
|
|
1
2
|
import { ItemDescriptor } from './ItemDescriptor';
|
|
2
3
|
/**
|
|
3
4
|
* FlagStore used to store flag data in memory.
|
|
@@ -23,6 +24,15 @@ export default interface FlagStore {
|
|
|
23
24
|
getAll(): {
|
|
24
25
|
[key: string]: ItemDescriptor;
|
|
25
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Applies a changeset to the store without version checks.
|
|
29
|
+
* - `'full'`: replaces all flags.
|
|
30
|
+
* - `'partial'`: merges updates into existing flags.
|
|
31
|
+
* - `'none'`: no-op.
|
|
32
|
+
*/
|
|
33
|
+
applyChanges(updates: {
|
|
34
|
+
[key: string]: ItemDescriptor;
|
|
35
|
+
}, type: internal.PayloadType): void;
|
|
26
36
|
}
|
|
27
37
|
/**
|
|
28
38
|
* Creates the default implementation of the flag store.
|
|
@@ -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;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7C;;OAEG;IACH,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"FlagStore.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS;IAChC;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7C;;OAEG;IACH,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAC;IAE5C;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;CAC5F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,CAkClD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Context, LDLogger } from '@launchdarkly/js-sdk-common';
|
|
1
|
+
import { Context, internal, LDLogger } from '@launchdarkly/js-sdk-common';
|
|
2
2
|
import FlagStore from './FlagStore';
|
|
3
3
|
import { ItemDescriptor } from './ItemDescriptor';
|
|
4
4
|
export type FlagChangeType = 'init' | 'patch' | 'override';
|
|
@@ -51,6 +51,18 @@ export interface FlagUpdater {
|
|
|
51
51
|
* @returns true if the flag was upserted, false otherwise
|
|
52
52
|
*/
|
|
53
53
|
upsert(context: Context, key: string, item: ItemDescriptor): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Applies a changeset directly to the flag store, bypassing version checks
|
|
56
|
+
* and inactive-context guards. Used by the FDv2 data path where ordering
|
|
57
|
+
* is handled at the protocol layer.
|
|
58
|
+
*
|
|
59
|
+
* - `'full'`: replaces all flags and emits change events for differences.
|
|
60
|
+
* - `'partial'`: merges updates and emits change events for each key.
|
|
61
|
+
* - `'none'`: no flag changes (caller handles freshness separately).
|
|
62
|
+
*/
|
|
63
|
+
applyChanges(context: Context, updates: {
|
|
64
|
+
[key: string]: ItemDescriptor;
|
|
65
|
+
}, type: internal.PayloadType): void;
|
|
54
66
|
/**
|
|
55
67
|
* Registers a callback to be called when the flags change.
|
|
56
68
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlagUpdater.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"FlagUpdater.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EACvB,IAAI,EAAE,cAAc,KACjB,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9D;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAE1E,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAEhF;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAErE;;;;;;;;OAQG;IACH,YAAY,CACV,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,EAC1C,IAAI,EAAE,QAAQ,CAAC,WAAW,GACzB,IAAI,CAAC;IAER;;;;OAIG;IACH,EAAE,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,WAAW,CA2F/F"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -22,8 +22,13 @@ export type { DataSourceEndpoints } from './datasource/Endpoints';
|
|
|
22
22
|
export { BaseDataManager } from './DataManager';
|
|
23
23
|
export { makeRequestor, Requestor };
|
|
24
24
|
export { DataSourceStatus, DataSourceStatusErrorInfo, LDClientImpl, LDClientInternalOptions, DataSourceState, EventName as LDEmitterEventName, };
|
|
25
|
-
export type { FDv2ConnectionMode, EndpointConfig, CacheDataSourceEntry, PollingDataSourceEntry, StreamingDataSourceEntry, DataSourceEntry, ModeDefinition, LDClientDataSystemOptions, AutomaticModeSwitchingConfig, PlatformDataSystemDefaults, LifecycleState, ModeState, ConfiguredMode, ModeResolution, ModeResolutionEntry, ModeResolutionTable, } from './api/datasource';
|
|
25
|
+
export type { FDv2ConnectionMode, EndpointConfig, CacheDataSourceEntry, PollingDataSourceEntry, StreamingDataSourceEntry, InitializerEntry, SynchronizerEntry, DataSourceEntry, ModeDefinition, LDClientDataSystemOptions, AutomaticModeSwitchingConfig, PlatformDataSystemDefaults, LifecycleState, ModeState, ConfiguredMode, ModeResolution, ModeResolutionEntry, ModeResolutionTable, } from './api/datasource';
|
|
26
|
+
export { createDataSourceStatusManager } from './datasource/DataSourceStatusManager';
|
|
27
|
+
export type { DataSourceStatusManager } from './datasource/DataSourceStatusManager';
|
|
26
28
|
export { dataSystemValidators, BROWSER_DATA_SYSTEM_DEFAULTS, MOBILE_DATA_SYSTEM_DEFAULTS, DESKTOP_DATA_SYSTEM_DEFAULTS, } from './datasource/LDClientDataSystemOptions';
|
|
27
29
|
export type { ModeTable } from './datasource/ConnectionModeConfig';
|
|
30
|
+
export { MODE_TABLE } from './datasource/ConnectionModeConfig';
|
|
28
31
|
export { resolveConnectionMode, MOBILE_TRANSITION_TABLE, BROWSER_TRANSITION_TABLE, DESKTOP_TRANSITION_TABLE, } from './datasource/ModeResolver';
|
|
32
|
+
export type { SourceFactoryContext, SourceFactoryProvider, } from './datasource/SourceFactoryProvider';
|
|
33
|
+
export { createDefaultSourceFactoryProvider } from './datasource/SourceFactoryProvider';
|
|
29
34
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,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,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,wCAAwC,CAAC;AAGhD,YAAY,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|