@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.
Files changed (60) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/DataManager.d.ts +24 -0
  3. package/dist/cjs/DataManager.d.ts.map +1 -1
  4. package/dist/cjs/api/datasource/DataSourceEntry.d.ts +11 -0
  5. package/dist/cjs/api/datasource/DataSourceEntry.d.ts.map +1 -1
  6. package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts +22 -0
  7. package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  8. package/dist/cjs/api/datasource/ModeDefinition.d.ts +3 -3
  9. package/dist/cjs/api/datasource/ModeDefinition.d.ts.map +1 -1
  10. package/dist/cjs/api/datasource/index.d.ts +1 -1
  11. package/dist/cjs/api/datasource/index.d.ts.map +1 -1
  12. package/dist/cjs/datasource/ConnectionModeConfig.d.ts.map +1 -1
  13. package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts +1 -0
  14. package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  15. package/dist/cjs/datasource/SourceFactoryProvider.d.ts +77 -0
  16. package/dist/cjs/datasource/SourceFactoryProvider.d.ts.map +1 -0
  17. package/dist/cjs/datasource/fdv2/FDv2DataSource.d.ts.map +1 -1
  18. package/dist/cjs/flag-manager/FlagManager.d.ts +16 -1
  19. package/dist/cjs/flag-manager/FlagManager.d.ts.map +1 -1
  20. package/dist/cjs/flag-manager/FlagPersistence.d.ts +13 -1
  21. package/dist/cjs/flag-manager/FlagPersistence.d.ts.map +1 -1
  22. package/dist/cjs/flag-manager/FlagStore.d.ts +10 -0
  23. package/dist/cjs/flag-manager/FlagStore.d.ts.map +1 -1
  24. package/dist/cjs/flag-manager/FlagUpdater.d.ts +13 -1
  25. package/dist/cjs/flag-manager/FlagUpdater.d.ts.map +1 -1
  26. package/dist/cjs/index.cjs +1130 -3
  27. package/dist/cjs/index.cjs.map +1 -1
  28. package/dist/cjs/index.d.ts +6 -1
  29. package/dist/cjs/index.d.ts.map +1 -1
  30. package/dist/cjs/types/index.d.ts +2 -2
  31. package/dist/esm/DataManager.d.ts +24 -0
  32. package/dist/esm/DataManager.d.ts.map +1 -1
  33. package/dist/esm/api/datasource/DataSourceEntry.d.ts +11 -0
  34. package/dist/esm/api/datasource/DataSourceEntry.d.ts.map +1 -1
  35. package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts +22 -0
  36. package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  37. package/dist/esm/api/datasource/ModeDefinition.d.ts +3 -3
  38. package/dist/esm/api/datasource/ModeDefinition.d.ts.map +1 -1
  39. package/dist/esm/api/datasource/index.d.ts +1 -1
  40. package/dist/esm/api/datasource/index.d.ts.map +1 -1
  41. package/dist/esm/datasource/ConnectionModeConfig.d.ts.map +1 -1
  42. package/dist/esm/datasource/LDClientDataSystemOptions.d.ts +1 -0
  43. package/dist/esm/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  44. package/dist/esm/datasource/SourceFactoryProvider.d.ts +77 -0
  45. package/dist/esm/datasource/SourceFactoryProvider.d.ts.map +1 -0
  46. package/dist/esm/datasource/fdv2/FDv2DataSource.d.ts.map +1 -1
  47. package/dist/esm/flag-manager/FlagManager.d.ts +16 -1
  48. package/dist/esm/flag-manager/FlagManager.d.ts.map +1 -1
  49. package/dist/esm/flag-manager/FlagPersistence.d.ts +13 -1
  50. package/dist/esm/flag-manager/FlagPersistence.d.ts.map +1 -1
  51. package/dist/esm/flag-manager/FlagStore.d.ts +10 -0
  52. package/dist/esm/flag-manager/FlagStore.d.ts.map +1 -1
  53. package/dist/esm/flag-manager/FlagUpdater.d.ts +13 -1
  54. package/dist/esm/flag-manager/FlagUpdater.d.ts.map +1 -1
  55. package/dist/esm/index.d.ts +6 -1
  56. package/dist/esm/index.d.ts.map +1 -1
  57. package/dist/esm/index.mjs +1128 -4
  58. package/dist/esm/index.mjs.map +1 -1
  59. package/dist/esm/types/index.d.ts +2 -2
  60. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.23.0](https://github.com/launchdarkly/js-core/compare/js-client-sdk-common-v1.22.0...js-client-sdk-common-v1.23.0) (2026-03-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * FDv2 types, refined validators, and DataManager interface ([#1207](https://github.com/launchdarkly/js-core/issues/1207)) ([d7ccfc1](https://github.com/launchdarkly/js-core/commit/d7ccfc1a5359610d70751dc08e3b894bb7ecf334))
9
+ * FlagManager.applyChanges for FDv2 full/partial/none semantics ([#1208](https://github.com/launchdarkly/js-core/issues/1208)) ([d9a1bd7](https://github.com/launchdarkly/js-core/commit/d9a1bd7d24ea68e867496e93be0f3097b709392a))
10
+ * SourceFactoryProvider for declarative data source creation ([#1209](https://github.com/launchdarkly/js-core/issues/1209)) ([e254f77](https://github.com/launchdarkly/js-core/commit/e254f771761b3d0d61a745a1e06f99f6216ff63a))
11
+
12
+
13
+ ### Dependencies
14
+
15
+ * The following workspace dependencies were updated
16
+ * dependencies
17
+ * @launchdarkly/js-sdk-common bumped from 2.23.0 to 2.24.0
18
+
3
19
  ## [1.22.0](https://github.com/launchdarkly/js-core/compare/js-client-sdk-common-v1.21.0...js-client-sdk-common-v1.22.0) (2026-03-16)
4
20
 
5
21
 
@@ -26,6 +26,30 @@ export interface DataManager {
26
26
  * Closes the data manager. Any active connections are closed.
27
27
  */
28
28
  close(): void;
29
+ /**
30
+ * Force streaming on or off. When `true`, the data manager should
31
+ * maintain a streaming connection. When `false`, streaming is disabled.
32
+ * When `undefined`, the forced state is cleared and automatic behavior
33
+ * takes over.
34
+ *
35
+ * Optional — only browser data managers implement this.
36
+ */
37
+ setForcedStreaming?(streaming?: boolean): void;
38
+ /**
39
+ * Update the automatic streaming state based on whether change listeners
40
+ * are registered. When `true` and forced streaming is not set, the data
41
+ * manager should activate streaming.
42
+ *
43
+ * Optional — only browser data managers implement this.
44
+ */
45
+ setAutomaticStreamingState?(streaming: boolean): void;
46
+ /**
47
+ * Set a callback to flush pending analytics events. Called immediately
48
+ * (not debounced) when the lifecycle transitions to background.
49
+ *
50
+ * Optional — only FDv2 data managers implement this.
51
+ */
52
+ setFlushCallback?(callback: () => void): void;
29
53
  }
30
54
  /**
31
55
  * Factory interface for constructing data managers.
@@ -1 +1 @@
1
- {"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../src/DataManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../src/DataManager.ts"],"names":[],"mappings":"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"}
@@ -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;;GAEG;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,eAAe,GACvB,oBAAoB,GACpB,sBAAsB,GACtB,wBAAwB,CAAC"}
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;AAKtD;;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;CAIjE;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
+ {"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 { DataSourceEntry } from './DataSourceEntry';
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<DataSourceEntry>;
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<DataSourceEntry>;
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,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAEtD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACxD"}
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;AA6BF,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"}
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;;;;CAIzB,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"}
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,CA0QjF"}
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":"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"}
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;AAO1E,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;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAuCtC,eAAe;YAiBf,UAAU;YAqBV,WAAW;CAuD1B"}
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;CAC7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,CAyBlD"}
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;AAGhE,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;;;;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,CAoE/F"}
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"}