@launchdarkly/js-client-sdk-common 1.23.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.
Files changed (76) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/cjs/DataManager.d.ts +9 -0
  3. package/dist/cjs/DataManager.d.ts.map +1 -1
  4. package/dist/cjs/LDClientImpl.d.ts +19 -8
  5. package/dist/cjs/LDClientImpl.d.ts.map +1 -1
  6. package/dist/cjs/api/LDOptions.d.ts +17 -5
  7. package/dist/cjs/api/LDOptions.d.ts.map +1 -1
  8. package/dist/cjs/api/LDStartOptions.d.ts +19 -0
  9. package/dist/cjs/api/LDStartOptions.d.ts.map +1 -0
  10. package/dist/cjs/api/datasource/DataSourceEntry.d.ts +46 -0
  11. package/dist/cjs/api/datasource/DataSourceEntry.d.ts.map +1 -1
  12. package/dist/cjs/api/datasource/FDv2ConnectionMode.d.ts +5 -0
  13. package/dist/cjs/api/datasource/FDv2ConnectionMode.d.ts.map +1 -1
  14. package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts +37 -41
  15. package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  16. package/dist/cjs/api/datasource/ModeDefinition.d.ts +17 -1
  17. package/dist/cjs/api/datasource/ModeDefinition.d.ts.map +1 -1
  18. package/dist/cjs/api/datasource/index.d.ts +2 -2
  19. package/dist/cjs/api/datasource/index.d.ts.map +1 -1
  20. package/dist/cjs/api/index.d.ts +1 -0
  21. package/dist/cjs/api/index.d.ts.map +1 -1
  22. package/dist/cjs/configuration/Configuration.d.ts +13 -3
  23. package/dist/cjs/configuration/Configuration.d.ts.map +1 -1
  24. package/dist/cjs/configuration/validateOptions.d.ts +18 -2
  25. package/dist/cjs/configuration/validateOptions.d.ts.map +1 -1
  26. package/dist/cjs/configuration/validators.d.ts +1 -1
  27. package/dist/cjs/configuration/validators.d.ts.map +1 -1
  28. package/dist/cjs/datasource/ConnectionModeConfig.d.ts +4 -2
  29. package/dist/cjs/datasource/ConnectionModeConfig.d.ts.map +1 -1
  30. package/dist/cjs/datasource/FDv2DataManagerBase.d.ts +87 -0
  31. package/dist/cjs/datasource/FDv2DataManagerBase.d.ts.map +1 -0
  32. package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts +37 -3
  33. package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  34. package/dist/cjs/datasource/fdv2/CacheInitializer.d.ts.map +1 -1
  35. package/dist/cjs/index.cjs +1295 -104
  36. package/dist/cjs/index.cjs.map +1 -1
  37. package/dist/cjs/index.d.ts +8 -3
  38. package/dist/cjs/index.d.ts.map +1 -1
  39. package/dist/esm/DataManager.d.ts +9 -0
  40. package/dist/esm/DataManager.d.ts.map +1 -1
  41. package/dist/esm/LDClientImpl.d.ts +19 -8
  42. package/dist/esm/LDClientImpl.d.ts.map +1 -1
  43. package/dist/esm/api/LDOptions.d.ts +17 -5
  44. package/dist/esm/api/LDOptions.d.ts.map +1 -1
  45. package/dist/esm/api/LDStartOptions.d.ts +19 -0
  46. package/dist/esm/api/LDStartOptions.d.ts.map +1 -0
  47. package/dist/esm/api/datasource/DataSourceEntry.d.ts +46 -0
  48. package/dist/esm/api/datasource/DataSourceEntry.d.ts.map +1 -1
  49. package/dist/esm/api/datasource/FDv2ConnectionMode.d.ts +5 -0
  50. package/dist/esm/api/datasource/FDv2ConnectionMode.d.ts.map +1 -1
  51. package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts +37 -41
  52. package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  53. package/dist/esm/api/datasource/ModeDefinition.d.ts +17 -1
  54. package/dist/esm/api/datasource/ModeDefinition.d.ts.map +1 -1
  55. package/dist/esm/api/datasource/index.d.ts +2 -2
  56. package/dist/esm/api/datasource/index.d.ts.map +1 -1
  57. package/dist/esm/api/index.d.ts +1 -0
  58. package/dist/esm/api/index.d.ts.map +1 -1
  59. package/dist/esm/configuration/Configuration.d.ts +13 -3
  60. package/dist/esm/configuration/Configuration.d.ts.map +1 -1
  61. package/dist/esm/configuration/validateOptions.d.ts +18 -2
  62. package/dist/esm/configuration/validateOptions.d.ts.map +1 -1
  63. package/dist/esm/configuration/validators.d.ts +1 -1
  64. package/dist/esm/configuration/validators.d.ts.map +1 -1
  65. package/dist/esm/datasource/ConnectionModeConfig.d.ts +4 -2
  66. package/dist/esm/datasource/ConnectionModeConfig.d.ts.map +1 -1
  67. package/dist/esm/datasource/FDv2DataManagerBase.d.ts +87 -0
  68. package/dist/esm/datasource/FDv2DataManagerBase.d.ts.map +1 -0
  69. package/dist/esm/datasource/LDClientDataSystemOptions.d.ts +37 -3
  70. package/dist/esm/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  71. package/dist/esm/datasource/fdv2/CacheInitializer.d.ts.map +1 -1
  72. package/dist/esm/index.d.ts +8 -3
  73. package/dist/esm/index.d.ts.map +1 -1
  74. package/dist/esm/index.mjs +1294 -106
  75. package/dist/esm/index.mjs.map +1 -1
  76. package/package.json +2 -2
@@ -29,8 +29,18 @@ export default function validateOptions(input: unknown, validatorMap: Record<str
29
29
  * Creates a validator for nested objects. When used in a validator map,
30
30
  * `validateOptions` will recursively validate the nested object's properties.
31
31
  * Defaults for nested fields are passed through from the parent.
32
+ *
33
+ * @param validators - Validator map for the nested object's fields.
34
+ * @param options - Optional configuration.
35
+ * @param options.defaults - Built-in defaults for nested fields.
36
+ * @param options.is - Custom `is` predicate. When provided, replaces the
37
+ * default "is object" check. Use this to discriminate between object shapes
38
+ * in an `anyOf` (e.g., matching on a `type` discriminant field).
32
39
  */
33
- export declare function validatorOf(validators: Record<string, TypeValidator>, builtInDefaults?: Record<string, unknown>): CompoundValidator;
40
+ export declare function validatorOf(validators: Record<string, TypeValidator>, options?: {
41
+ defaults?: Record<string, unknown>;
42
+ is?: (u: unknown) => boolean;
43
+ }): CompoundValidator;
34
44
  /**
35
45
  * Creates a validator for arrays of discriminated objects. Each item in the
36
46
  * array must be an object containing a `discriminant` field whose value
@@ -80,6 +90,10 @@ export declare function anyOf(...validators: TypeValidator[]): CompoundValidator
80
90
  *
81
91
  * @param keyValidator - Validates that each key is an allowed value.
82
92
  * @param valueValidator - Validates each value in the record.
93
+ * @param options - Optional configuration.
94
+ * @param options.defaults - Built-in defaults for the record entries. When
95
+ * provided, takes priority over defaults passed from the parent at
96
+ * validation time (same precedence as {@link validatorOf}).
83
97
  *
84
98
  * @example
85
99
  * ```ts
@@ -91,5 +105,7 @@ export declare function anyOf(...validators: TypeValidator[]): CompoundValidator
91
105
  * )
92
106
  * ```
93
107
  */
94
- export declare function recordOf(keyValidator: TypeValidator, valueValidator: TypeValidator): CompoundValidator;
108
+ export declare function recordOf(keyValidator: TypeValidator, valueValidator: TypeValidator, options?: {
109
+ defaults?: Record<string, unknown>;
110
+ }): CompoundValidator;
95
111
  //# sourceMappingURL=validateOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateOptions.d.ts","sourceRoot":"","sources":["../../src/configuration/validateOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAGR,aAAa,EAEd,MAAM,6BAA6B,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,QAAQ,CACN,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,OAAO,GACjB;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CACnC;AAMD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,MAAM,CAAC,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0DzB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACzC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,iBAAiB,CAsBnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAC9D,iBAAiB,CAuCnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAevE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CACtB,YAAY,EAAE,aAAa,EAC3B,cAAc,EAAE,aAAa,GAC5B,iBAAiB,CAkCnB"}
1
+ {"version":3,"file":"validateOptions.d.ts","sourceRoot":"","sources":["../../src/configuration/validateOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAGR,aAAa,EAEd,MAAM,6BAA6B,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,QAAQ,CACN,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,OAAO,GACjB;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CACnC;AAMD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,MAAM,CAAC,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0DzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACzC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CAAE,GAC7E,iBAAiB,CAuBnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAC9D,iBAAiB,CAuCnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAevE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CACtB,YAAY,EAAE,aAAa,EAC3B,cAAc,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC/C,iBAAiB,CAmCnB"}
@@ -1,6 +1,6 @@
1
1
  import { TypeValidator } from '@launchdarkly/js-sdk-common';
2
2
  import { type LDOptions } from '../api';
3
- import type { PlatformDataSystemDefaults } from '../api/datasource/LDClientDataSystemOptions';
3
+ import { type PlatformDataSystemDefaults } from '../datasource/LDClientDataSystemOptions';
4
4
  export interface ValidatorOptions {
5
5
  dataSystemDefaults?: PlatformDataSystemDefaults;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAI9F,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;CACjD;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAAC,MAAM,SAAS,EAAE,aAAa,CAAC,CAyCxC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/configuration/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,yCAAyC,CAAC;AAGjD,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;CACjD;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAAC,MAAM,SAAS,EAAE,aAAa,CAAC,CA2CxC"}
@@ -5,15 +5,17 @@ import type { FDv2ConnectionMode, ModeDefinition } from '../api/datasource';
5
5
  type ModeTable = {
6
6
  readonly [K in FDv2ConnectionMode]: ModeDefinition;
7
7
  };
8
+ declare const DEFAULT_FDV1_FALLBACK_POLL_INTERVAL_SECONDS = 300;
8
9
  declare const BACKGROUND_POLL_INTERVAL_SECONDS = 3600;
9
10
  declare const connectionModeValidator: import("@launchdarkly/js-sdk-common").OneOf;
10
11
  declare const modeDefinitionValidators: {
11
12
  initializers: import("../configuration/validateOptions").CompoundValidator;
12
13
  synchronizers: import("../configuration/validateOptions").CompoundValidator;
14
+ fdv1Fallback: import("../configuration/validateOptions").CompoundValidator;
13
15
  };
14
16
  declare const MODE_DEFINITION_DEFAULTS: Record<string, unknown>;
15
- declare const connectionModesValidator: import("../configuration/validateOptions").CompoundValidator;
16
17
  declare const MODE_TABLE: ModeTable;
18
+ declare const connectionModesValidator: import("../configuration/validateOptions").CompoundValidator;
17
19
  export type { ModeTable };
18
- export { MODE_TABLE, MODE_DEFINITION_DEFAULTS, BACKGROUND_POLL_INTERVAL_SECONDS, connectionModeValidator, modeDefinitionValidators, connectionModesValidator, };
20
+ export { MODE_TABLE, MODE_DEFINITION_DEFAULTS, DEFAULT_FDV1_FALLBACK_POLL_INTERVAL_SECONDS, BACKGROUND_POLL_INTERVAL_SECONDS, connectionModeValidator, modeDefinitionValidators, connectionModesValidator, };
19
21
  //# sourceMappingURL=ConnectionModeConfig.d.ts.map
@@ -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;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"}
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,2CAA2C,MAAM,CAAC;AACxD,QAAA,MAAM,gCAAgC,OAAO,CAAC;AAG9C,QAAA,MAAM,uBAAuB,6CAM5B,CAAC;AAuCF,QAAA,MAAM,wBAAwB;;;;CAI7B,CAAC;AAEF,QAAA,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGrD,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,SAwBjB,CAAC;AAEF,QAAA,MAAM,wBAAwB,8DAG7B,CAAC;AAEF,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,2CAA2C,EAC3C,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,GACzB,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { LDHeaders, Platform } from '@launchdarkly/js-sdk-common';
2
+ import { FDv2ConnectionMode, ModeResolutionTable } from '../api/datasource';
3
+ import { LDIdentifyOptions } from '../api/LDIdentifyOptions';
4
+ import { Configuration } from '../configuration/Configuration';
5
+ import { DataManager } from '../DataManager';
6
+ import { FlagManager } from '../flag-manager/FlagManager';
7
+ import LDEmitter from '../LDEmitter';
8
+ import { ModeTable } from './ConnectionModeConfig';
9
+ import { DataSourceEndpoints } from './Endpoints';
10
+ import { SourceFactoryProvider } from './SourceFactoryProvider';
11
+ import { LifecycleState, NetworkState } from './StateDebounceManager';
12
+ /**
13
+ * Configuration for creating an {@link FDv2DataManagerControl}.
14
+ */
15
+ export interface FDv2DataManagerBaseConfig {
16
+ platform: Platform;
17
+ flagManager: FlagManager;
18
+ credential: string;
19
+ config: Configuration;
20
+ baseHeaders: LDHeaders;
21
+ emitter: LDEmitter;
22
+ /** Mode resolution table for this platform. */
23
+ transitionTable: ModeResolutionTable;
24
+ /** The configured foreground connection mode. Use {@link resolveForegroundMode} to derive. */
25
+ foregroundMode: FDv2ConnectionMode;
26
+ /** The background connection mode, if any. */
27
+ backgroundMode: FDv2ConnectionMode | undefined;
28
+ /** The mode table mapping modes to data source definitions. */
29
+ modeTable: ModeTable;
30
+ /** Provider that converts DataSourceEntry descriptors to concrete factories. */
31
+ sourceFactoryProvider: SourceFactoryProvider;
32
+ /**
33
+ * Platform-specific function to build query params for each identify call.
34
+ * Browser returns `[{ key: 'auth', value: credential }]` + optional hash.
35
+ * Mobile returns `[]` (uses Authorization header instead).
36
+ */
37
+ buildQueryParams: (identifyOptions?: LDIdentifyOptions) => {
38
+ key: string;
39
+ value: string;
40
+ }[];
41
+ /**
42
+ * FDv1 endpoint factory for fallback. When provided, a blocked FDv1
43
+ * polling synchronizer slot is automatically appended to every data
44
+ * source. It is activated when an FDv2 response includes the
45
+ * `x-ld-fd-fallback` header.
46
+ *
47
+ * Browser: `browserFdv1Endpoints(clientSideId)`
48
+ * Mobile: `mobileFdv1Endpoints()`
49
+ */
50
+ fdv1Endpoints?: DataSourceEndpoints;
51
+ /** Fallback condition timeout in ms (default 120s). */
52
+ fallbackTimeoutMs?: number;
53
+ /** Recovery condition timeout in ms (default 300s). */
54
+ recoveryTimeoutMs?: number;
55
+ }
56
+ /**
57
+ * The public interface returned by {@link createFDv2DataManagerBase}.
58
+ * Extends {@link DataManager} with mode control methods.
59
+ */
60
+ export interface FDv2DataManagerControl extends DataManager {
61
+ /** Update the pending network state. Goes through debounce. */
62
+ setNetworkState(state: NetworkState): void;
63
+ /** Update the pending lifecycle state. Goes through debounce. */
64
+ setLifecycleState(state: LifecycleState): void;
65
+ /**
66
+ * Set an explicit connection mode override that bypasses all automatic
67
+ * behavior (transition table, streaming, lifecycle). Pass undefined to
68
+ * clear the override and return to automatic behavior.
69
+ */
70
+ setConnectionMode(mode?: FDv2ConnectionMode): void;
71
+ /** Get the currently resolved connection mode. */
72
+ getCurrentMode(): FDv2ConnectionMode;
73
+ /** The configured default foreground mode (from config, not auto-promoted). */
74
+ readonly configuredForegroundMode: FDv2ConnectionMode;
75
+ /**
76
+ * Set a callback to flush pending analytics events. Called immediately
77
+ * (not debounced) when the lifecycle transitions to background.
78
+ */
79
+ setFlushCallback(callback: () => void): void;
80
+ }
81
+ /**
82
+ * Creates a shared FDv2 data manager that owns mode resolution, debouncing,
83
+ * selector state, and FDv2DataSource lifecycle. Platform SDKs (browser, RN)
84
+ * wrap this with platform-specific config and event wiring.
85
+ */
86
+ export declare function createFDv2DataManagerBase(baseConfig: FDv2DataManagerBaseConfig): FDv2DataManagerControl;
87
+ //# sourceMappingURL=FDv2DataManagerBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FDv2DataManagerBase.d.ts","sourceRoot":"","sources":["../../src/datasource/FDv2DataManagerBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EAET,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,EAElB,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAiB,MAAM,aAAa,CAAC;AAQjE,OAAO,EAAwB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAEL,cAAc,EACd,YAAY,EAGb,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,SAAS,CAAC;IACvB,OAAO,EAAE,SAAS,CAAC;IAEnB,+CAA+C;IAC/C,eAAe,EAAE,mBAAmB,CAAC;IACrC,8FAA8F;IAC9F,cAAc,EAAE,kBAAkB,CAAC;IACnC,8CAA8C;IAC9C,cAAc,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,+DAA+D;IAC/D,SAAS,EAAE,SAAS,CAAC;IACrB,gFAAgF;IAChF,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,eAAe,CAAC,EAAE,iBAAiB,KAAK;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAE5F;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,+DAA+D;IAC/D,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3C,iEAAiE;IACjE,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnD,kDAAkD;IAClD,cAAc,IAAI,kBAAkB,CAAC;IACrC,+EAA+E;IAC/E,QAAQ,CAAC,wBAAwB,EAAE,kBAAkB,CAAC;IACtD;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,yBAAyB,GACpC,sBAAsB,CA4fxB"}
@@ -1,6 +1,34 @@
1
- import type { PlatformDataSystemDefaults } from '../api/datasource';
1
+ import type FDv2ConnectionMode from '../api/datasource/FDv2ConnectionMode';
2
+ import type { AutomaticModeSwitchingConfig, LDClientDataSystemOptions, ManualModeSwitching } from '../api/datasource/LDClientDataSystemOptions';
3
+ /**
4
+ * Internal data system options that extend the public type with fields
5
+ * that are set by platform SDKs but not exposed to end users.
6
+ */
7
+ export interface InternalDataSystemOptions extends LDClientDataSystemOptions {
8
+ /**
9
+ * The default foreground connection mode for this platform.
10
+ * Populated from platform defaults during validation.
11
+ */
12
+ foregroundConnectionMode?: FDv2ConnectionMode;
13
+ /**
14
+ * The connection mode to use when the application transitions to the background.
15
+ * Set by platform SDKs (e.g., mobile) via platform defaults.
16
+ */
17
+ backgroundConnectionMode?: FDv2ConnectionMode;
18
+ }
19
+ /**
20
+ * Platform-specific default configuration for the FDv2 data system.
21
+ * Internal to the SDK — not exposed to end users.
22
+ */
23
+ export interface PlatformDataSystemDefaults {
24
+ /** The default foreground connection mode for this platform. */
25
+ readonly foregroundConnectionMode: FDv2ConnectionMode;
26
+ /** The default background connection mode, if any. */
27
+ readonly backgroundConnectionMode?: FDv2ConnectionMode;
28
+ /** Whether automatic mode switching is enabled by default. */
29
+ readonly automaticModeSwitching: boolean | AutomaticModeSwitchingConfig | ManualModeSwitching;
30
+ }
2
31
  declare const dataSystemValidators: {
3
- initialConnectionMode: import("@launchdarkly/js-sdk-common").OneOf;
4
32
  backgroundConnectionMode: import("@launchdarkly/js-sdk-common").OneOf;
5
33
  automaticModeSwitching: import("../configuration/validateOptions").CompoundValidator;
6
34
  connectionModes: import("../configuration/validateOptions").CompoundValidator;
@@ -17,5 +45,11 @@ declare const MOBILE_DATA_SYSTEM_DEFAULTS: PlatformDataSystemDefaults;
17
45
  * Default FDv2 data system configuration for desktop SDKs (Electron, etc.).
18
46
  */
19
47
  declare const DESKTOP_DATA_SYSTEM_DEFAULTS: PlatformDataSystemDefaults;
20
- export { dataSystemValidators, BROWSER_DATA_SYSTEM_DEFAULTS, MOBILE_DATA_SYSTEM_DEFAULTS, DESKTOP_DATA_SYSTEM_DEFAULTS, };
48
+ /**
49
+ * Resolve the foreground connection mode from a validated data system config
50
+ * and platform defaults. Uses the mode from `ManualModeSwitching` when present,
51
+ * otherwise falls back to the platform default.
52
+ */
53
+ declare function resolveForegroundMode(dataSystem: InternalDataSystemOptions, defaults: PlatformDataSystemDefaults): FDv2ConnectionMode;
54
+ export { dataSystemValidators, resolveForegroundMode, BROWSER_DATA_SYSTEM_DEFAULTS, MOBILE_DATA_SYSTEM_DEFAULTS, DESKTOP_DATA_SYSTEM_DEFAULTS, };
21
55
  //# sourceMappingURL=LDClientDataSystemOptions.d.ts.map
@@ -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;;;;;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"}
1
+ {"version":3,"file":"LDClientDataSystemOptions.d.ts","sourceRoot":"","sources":["../../src/datasource/LDClientDataSystemOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,kBAAkB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,6CAA6C,CAAC;AAIrD;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E;;;OAGG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;IAE9C;;;OAGG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,gEAAgE;IAChE,QAAQ,CAAC,wBAAwB,EAAE,kBAAkB,CAAC;IACtD,sDAAsD;IACtD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;IACvD,8DAA8D;IAC9D,QAAQ,CAAC,sBAAsB,EAAE,OAAO,GAAG,4BAA4B,GAAG,mBAAmB,CAAC;CAC/F;AAiBD,QAAA,MAAM,oBAAoB;;;;CAQzB,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;AAQF;;;;GAIG;AACH,iBAAS,qBAAqB,CAC5B,UAAU,EAAE,yBAAyB,EACrC,QAAQ,EAAE,0BAA0B,GACnC,kBAAkB,CAKpB;AAED,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,GAC7B,CAAC"}
@@ -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;AAe3F;;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"}
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"}
@@ -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';
@@ -22,13 +22,18 @@ 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, InitializerEntry, SynchronizerEntry, 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, ManualModeSwitching, LifecycleState, ModeState, ConfiguredMode, ModeResolution, ModeResolutionEntry, ModeResolutionTable, } from './api/datasource';
26
26
  export { createDataSourceStatusManager } from './datasource/DataSourceStatusManager';
27
27
  export type { DataSourceStatusManager } from './datasource/DataSourceStatusManager';
28
- export { dataSystemValidators, BROWSER_DATA_SYSTEM_DEFAULTS, MOBILE_DATA_SYSTEM_DEFAULTS, DESKTOP_DATA_SYSTEM_DEFAULTS, } from './datasource/LDClientDataSystemOptions';
28
+ export type { InternalDataSystemOptions, PlatformDataSystemDefaults, } from './datasource/LDClientDataSystemOptions';
29
+ export { dataSystemValidators, resolveForegroundMode, BROWSER_DATA_SYSTEM_DEFAULTS, MOBILE_DATA_SYSTEM_DEFAULTS, DESKTOP_DATA_SYSTEM_DEFAULTS, } from './datasource/LDClientDataSystemOptions';
29
30
  export type { ModeTable } from './datasource/ConnectionModeConfig';
30
31
  export { MODE_TABLE } from './datasource/ConnectionModeConfig';
31
32
  export { resolveConnectionMode, MOBILE_TRANSITION_TABLE, BROWSER_TRANSITION_TABLE, DESKTOP_TRANSITION_TABLE, } from './datasource/ModeResolver';
32
33
  export type { SourceFactoryContext, SourceFactoryProvider, } from './datasource/SourceFactoryProvider';
33
34
  export { createDefaultSourceFactoryProvider } from './datasource/SourceFactoryProvider';
35
+ export type { FDv2DataManagerBaseConfig, FDv2DataManagerControl, } from './datasource/FDv2DataManagerBase';
36
+ export { createFDv2DataManagerBase } from './datasource/FDv2DataManagerBase';
37
+ export type { StateDebounceManager, StateDebounceManagerConfig, NetworkState, PendingState, ReconciliationCallback, } from './datasource/StateDebounceManager';
38
+ export { createStateDebounceManager } from './datasource/StateDebounceManager';
34
39
  //# sourceMappingURL=index.d.ts.map
@@ -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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"}