@launchdarkly/js-client-sdk-common 1.19.1 → 1.21.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 +33 -0
- package/dist/cjs/api/datasource/DataSourceEntry.d.ts +45 -0
- package/dist/cjs/api/datasource/DataSourceEntry.d.ts.map +1 -0
- package/dist/cjs/api/datasource/FDv2ConnectionMode.d.ts +30 -0
- package/dist/cjs/api/datasource/FDv2ConnectionMode.d.ts.map +1 -0
- package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts +75 -0
- package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -0
- package/dist/cjs/api/datasource/ModeDefinition.d.ts +21 -0
- package/dist/cjs/api/datasource/ModeDefinition.d.ts.map +1 -0
- package/dist/cjs/api/datasource/index.d.ts +5 -0
- package/dist/cjs/api/datasource/index.d.ts.map +1 -0
- package/dist/cjs/api/index.d.ts +1 -0
- package/dist/cjs/api/index.d.ts.map +1 -1
- package/dist/cjs/configuration/Configuration.d.ts +0 -1
- package/dist/cjs/configuration/Configuration.d.ts.map +1 -1
- package/dist/cjs/configuration/validateOptions.d.ts +95 -0
- package/dist/cjs/configuration/validateOptions.d.ts.map +1 -0
- package/dist/cjs/datasource/ConnectionModeConfig.d.ts +19 -0
- package/dist/cjs/datasource/ConnectionModeConfig.d.ts.map +1 -0
- package/dist/cjs/datasource/DataSourceConfig.d.ts +1 -0
- package/dist/cjs/datasource/DataSourceConfig.d.ts.map +1 -1
- package/dist/cjs/datasource/Endpoints.d.ts +21 -0
- package/dist/cjs/datasource/Endpoints.d.ts.map +1 -0
- package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts +20 -0
- package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts.map +1 -0
- package/dist/cjs/datasource/StateDebounceManager.d.ts +92 -0
- package/dist/cjs/datasource/StateDebounceManager.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/AsyncQueue.d.ts +2 -0
- package/dist/cjs/datasource/fdv2/AsyncQueue.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/Conditions.d.ts +73 -0
- package/dist/cjs/datasource/fdv2/Conditions.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/FDv2DataSource.d.ts +52 -0
- package/dist/cjs/datasource/fdv2/FDv2DataSource.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/FDv2Requestor.d.ts +45 -0
- package/dist/cjs/datasource/fdv2/FDv2Requestor.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/FDv2SourceResult.d.ts +82 -0
- package/dist/cjs/datasource/fdv2/FDv2SourceResult.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/Initializer.d.ts +40 -0
- package/dist/cjs/datasource/fdv2/Initializer.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/PollingBase.d.ts +2 -0
- package/dist/cjs/datasource/fdv2/PollingBase.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/PollingInitializer.d.ts +2 -0
- package/dist/cjs/datasource/fdv2/PollingInitializer.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/PollingSynchronizer.d.ts +2 -0
- package/dist/cjs/datasource/fdv2/PollingSynchronizer.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/SourceManager.d.ts +88 -0
- package/dist/cjs/datasource/fdv2/SourceManager.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/StreamingFDv2Base.d.ts +11 -0
- package/dist/cjs/datasource/fdv2/StreamingFDv2Base.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/StreamingInitializerFDv2.d.ts +2 -0
- package/dist/cjs/datasource/fdv2/StreamingInitializerFDv2.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/StreamingSynchronizerFDv2.d.ts +2 -0
- package/dist/cjs/datasource/fdv2/StreamingSynchronizerFDv2.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/Synchronizer.d.ts +49 -0
- package/dist/cjs/datasource/fdv2/Synchronizer.d.ts.map +1 -0
- package/dist/cjs/datasource/fdv2/index.d.ts +16 -0
- package/dist/cjs/datasource/fdv2/index.d.ts.map +1 -0
- package/dist/cjs/datasource/flagEvalMapper.d.ts +31 -0
- package/dist/cjs/datasource/flagEvalMapper.d.ts.map +1 -0
- package/dist/cjs/index.cjs +187 -40
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/types/index.d.ts +15 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/esm/api/datasource/DataSourceEntry.d.ts +45 -0
- package/dist/esm/api/datasource/DataSourceEntry.d.ts.map +1 -0
- package/dist/esm/api/datasource/FDv2ConnectionMode.d.ts +30 -0
- package/dist/esm/api/datasource/FDv2ConnectionMode.d.ts.map +1 -0
- package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts +75 -0
- package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -0
- package/dist/esm/api/datasource/ModeDefinition.d.ts +21 -0
- package/dist/esm/api/datasource/ModeDefinition.d.ts.map +1 -0
- package/dist/esm/api/datasource/index.d.ts +5 -0
- package/dist/esm/api/datasource/index.d.ts.map +1 -0
- package/dist/esm/api/index.d.ts +1 -0
- package/dist/esm/api/index.d.ts.map +1 -1
- package/dist/esm/configuration/Configuration.d.ts +0 -1
- package/dist/esm/configuration/Configuration.d.ts.map +1 -1
- package/dist/esm/configuration/validateOptions.d.ts +95 -0
- package/dist/esm/configuration/validateOptions.d.ts.map +1 -0
- package/dist/esm/datasource/ConnectionModeConfig.d.ts +19 -0
- package/dist/esm/datasource/ConnectionModeConfig.d.ts.map +1 -0
- package/dist/esm/datasource/DataSourceConfig.d.ts +1 -0
- package/dist/esm/datasource/DataSourceConfig.d.ts.map +1 -1
- package/dist/esm/datasource/Endpoints.d.ts +21 -0
- package/dist/esm/datasource/Endpoints.d.ts.map +1 -0
- package/dist/esm/datasource/LDClientDataSystemOptions.d.ts +20 -0
- package/dist/esm/datasource/LDClientDataSystemOptions.d.ts.map +1 -0
- package/dist/esm/datasource/StateDebounceManager.d.ts +92 -0
- package/dist/esm/datasource/StateDebounceManager.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/AsyncQueue.d.ts +2 -0
- package/dist/esm/datasource/fdv2/AsyncQueue.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/Conditions.d.ts +73 -0
- package/dist/esm/datasource/fdv2/Conditions.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/FDv2DataSource.d.ts +52 -0
- package/dist/esm/datasource/fdv2/FDv2DataSource.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/FDv2Requestor.d.ts +45 -0
- package/dist/esm/datasource/fdv2/FDv2Requestor.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/FDv2SourceResult.d.ts +82 -0
- package/dist/esm/datasource/fdv2/FDv2SourceResult.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/Initializer.d.ts +40 -0
- package/dist/esm/datasource/fdv2/Initializer.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/PollingBase.d.ts +2 -0
- package/dist/esm/datasource/fdv2/PollingBase.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/PollingInitializer.d.ts +2 -0
- package/dist/esm/datasource/fdv2/PollingInitializer.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/PollingSynchronizer.d.ts +2 -0
- package/dist/esm/datasource/fdv2/PollingSynchronizer.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/SourceManager.d.ts +88 -0
- package/dist/esm/datasource/fdv2/SourceManager.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/StreamingFDv2Base.d.ts +11 -0
- package/dist/esm/datasource/fdv2/StreamingFDv2Base.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/StreamingInitializerFDv2.d.ts +2 -0
- package/dist/esm/datasource/fdv2/StreamingInitializerFDv2.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/StreamingSynchronizerFDv2.d.ts +2 -0
- package/dist/esm/datasource/fdv2/StreamingSynchronizerFDv2.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/Synchronizer.d.ts +49 -0
- package/dist/esm/datasource/fdv2/Synchronizer.d.ts.map +1 -0
- package/dist/esm/datasource/fdv2/index.d.ts +16 -0
- package/dist/esm/datasource/fdv2/index.d.ts.map +1 -0
- package/dist/esm/datasource/flagEvalMapper.d.ts +31 -0
- package/dist/esm/datasource/flagEvalMapper.d.ts.map +1 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.mjs +185 -42
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/types/index.d.ts +15 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DataSourceEntry } from './DataSourceEntry';
|
|
2
|
+
/**
|
|
3
|
+
* Defines the data pipeline for a connection mode: which data sources
|
|
4
|
+
* are used during initialization and which are used for ongoing synchronization.
|
|
5
|
+
*/
|
|
6
|
+
export interface ModeDefinition {
|
|
7
|
+
/**
|
|
8
|
+
* Ordered list of data sources to attempt during initialization.
|
|
9
|
+
* Sources are tried in order; the first that successfully provides a full
|
|
10
|
+
* data set transitions the SDK out of the initialization phase.
|
|
11
|
+
*/
|
|
12
|
+
readonly initializers: ReadonlyArray<DataSourceEntry>;
|
|
13
|
+
/**
|
|
14
|
+
* Ordered list of data sources for ongoing synchronization after
|
|
15
|
+
* initialization completes. Sources are in priority order with automatic
|
|
16
|
+
* failover to the next source if the primary fails.
|
|
17
|
+
* An empty array means no synchronization occurs (e.g., offline, one-shot).
|
|
18
|
+
*/
|
|
19
|
+
readonly synchronizers: ReadonlyArray<DataSourceEntry>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ModeDefinition.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { default as FDv2ConnectionMode } from './FDv2ConnectionMode';
|
|
2
|
+
export type { EndpointConfig, CacheDataSourceEntry, PollingDataSourceEntry, StreamingDataSourceEntry, DataSourceEntry, } from './DataSourceEntry';
|
|
3
|
+
export type { ModeDefinition } from './ModeDefinition';
|
|
4
|
+
export type { LDClientDataSystemOptions, AutomaticModeSwitchingConfig, PlatformDataSystemDefaults, } from './LDClientDataSystemOptions';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/esm/api/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -88,6 +88,5 @@ export default class ConfigurationImpl implements Configuration {
|
|
|
88
88
|
readonly getImplementationHooks: (environmentMetadata: LDPluginEnvironmentMetadata) => Hook[];
|
|
89
89
|
[index: string]: any;
|
|
90
90
|
constructor(pristineOptions?: LDOptions, internalOptions?: LDClientInternalOptions);
|
|
91
|
-
private _validateTypesAndNames;
|
|
92
91
|
}
|
|
93
92
|
//# sourceMappingURL=Configuration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,2BAA2B,
|
|
1
|
+
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/configuration/Configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { LDLogger, TypeValidator } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
/**
|
|
3
|
+
* A validator that performs structured validation on compound values
|
|
4
|
+
* (objects, arrays, records, or union types). Returns the validated value
|
|
5
|
+
* on success, or undefined to preserve the default.
|
|
6
|
+
*
|
|
7
|
+
* @param defaults - The current default value for this field, passed from
|
|
8
|
+
* `validateOptions` so nested defaults propagate without hand-written wrappers.
|
|
9
|
+
*/
|
|
10
|
+
export interface CompoundValidator extends TypeValidator {
|
|
11
|
+
validate(value: unknown, name: string, logger?: LDLogger, defaults?: unknown): {
|
|
12
|
+
value: unknown;
|
|
13
|
+
} | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Validates an options object against a map of validators and defaults.
|
|
17
|
+
*
|
|
18
|
+
* If `input` is null, undefined, or not an object the defaults are returned
|
|
19
|
+
* (with a warning for non-nullish non-objects).
|
|
20
|
+
*
|
|
21
|
+
* Supports special validator types created by:
|
|
22
|
+
* - {@link validatorOf}: recursively validates nested objects
|
|
23
|
+
* - {@link arrayOf}: validates arrays with per-item validation
|
|
24
|
+
* - {@link anyOf}: accepts the first matching validator from a list
|
|
25
|
+
* - {@link recordOf}: validates objects with dynamic keys
|
|
26
|
+
*/
|
|
27
|
+
export default function validateOptions(input: unknown, validatorMap: Record<string, TypeValidator>, defaults: Record<string, unknown>, logger?: LDLogger, prefix?: string): Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a validator for nested objects. When used in a validator map,
|
|
30
|
+
* `validateOptions` will recursively validate the nested object's properties.
|
|
31
|
+
* Defaults for nested fields are passed through from the parent.
|
|
32
|
+
*/
|
|
33
|
+
export declare function validatorOf(validators: Record<string, TypeValidator>): CompoundValidator;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a validator for arrays of discriminated objects. Each item in the
|
|
36
|
+
* array must be an object containing a `discriminant` field whose value
|
|
37
|
+
* selects which validator map to apply. The valid discriminant values are
|
|
38
|
+
* the keys of `validatorsByType`. Items that are not objects, or whose
|
|
39
|
+
* discriminant value is missing or unrecognized, are filtered out with a
|
|
40
|
+
* warning.
|
|
41
|
+
*
|
|
42
|
+
* @param discriminant - The field name used to determine each item's type.
|
|
43
|
+
* @param validatorsByType - A mapping from discriminant values to the
|
|
44
|
+
* validator maps used to validate items of that type. Each validator map
|
|
45
|
+
* should include a validator for the discriminant field itself.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* // Validates an array like:
|
|
50
|
+
* // [{ type: 'polling', pollInterval: 60 }, { type: 'cache' }]
|
|
51
|
+
*
|
|
52
|
+
* const validator = arrayOf('type', {
|
|
53
|
+
* cache: { type: TypeValidators.String },
|
|
54
|
+
* polling: { type: TypeValidators.String, pollInterval: TypeValidators.numberWithMin(30) },
|
|
55
|
+
* streaming: { type: TypeValidators.String, initialReconnectDelay: TypeValidators.numberWithMin(1) },
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function arrayOf(discriminant: string, validatorsByType: Record<string, Record<string, TypeValidator>>): CompoundValidator;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a validator that tries each provided validator in order and uses the
|
|
62
|
+
* first one whose `is()` check passes. For compound validators the value is
|
|
63
|
+
* processed through `validate()`; for simple validators the value is accepted
|
|
64
|
+
* as-is. If no validator matches, a warning is logged and the default is
|
|
65
|
+
* preserved.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* // Accepts either a boolean or a nested object with specific fields:
|
|
70
|
+
* anyOf(TypeValidators.Boolean, validatorOf({ lifecycle: TypeValidators.Boolean }))
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function anyOf(...validators: TypeValidator[]): CompoundValidator;
|
|
74
|
+
/**
|
|
75
|
+
* Creates a validator for objects with dynamic keys. Each key in the input
|
|
76
|
+
* object is checked against `keyValidator`; unrecognized keys produce a
|
|
77
|
+
* warning. Each value is validated by `valueValidator`. Defaults for
|
|
78
|
+
* individual entries are passed through from the parent so partial overrides
|
|
79
|
+
* preserve non-overridden entries.
|
|
80
|
+
*
|
|
81
|
+
* @param keyValidator - Validates that each key is an allowed value.
|
|
82
|
+
* @param valueValidator - Validates each value in the record.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* // Validates a record like { streaming: { ... }, polling: { ... } }
|
|
87
|
+
* // where keys must be valid connection modes:
|
|
88
|
+
* recordOf(
|
|
89
|
+
* TypeValidators.oneOf('streaming', 'polling', 'offline'),
|
|
90
|
+
* validatorOf({ initializers: arrayValidator, synchronizers: arrayValidator }),
|
|
91
|
+
* )
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function recordOf(keyValidator: TypeValidator, valueValidator: TypeValidator): CompoundValidator;
|
|
95
|
+
//# sourceMappingURL=validateOptions.d.ts.map
|
|
@@ -0,0 +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,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,iBAAiB,CAsBxF;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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FDv2ConnectionMode, ModeDefinition } from '../api/datasource';
|
|
2
|
+
/**
|
|
3
|
+
* A read-only mapping from each FDv2ConnectionMode to its ModeDefinition.
|
|
4
|
+
*/
|
|
5
|
+
type ModeTable = {
|
|
6
|
+
readonly [K in FDv2ConnectionMode]: ModeDefinition;
|
|
7
|
+
};
|
|
8
|
+
declare const BACKGROUND_POLL_INTERVAL_SECONDS = 3600;
|
|
9
|
+
declare const connectionModeValidator: import("@launchdarkly/js-sdk-common").OneOf;
|
|
10
|
+
declare const modeDefinitionValidators: {
|
|
11
|
+
initializers: import("../configuration/validateOptions").CompoundValidator;
|
|
12
|
+
synchronizers: import("../configuration/validateOptions").CompoundValidator;
|
|
13
|
+
};
|
|
14
|
+
declare const MODE_DEFINITION_DEFAULTS: Record<string, unknown>;
|
|
15
|
+
declare const connectionModesValidator: import("../configuration/validateOptions").CompoundValidator;
|
|
16
|
+
declare const MODE_TABLE: ModeTable;
|
|
17
|
+
export type { ModeTable };
|
|
18
|
+
export { MODE_TABLE, MODE_DEFINITION_DEFAULTS, BACKGROUND_POLL_INTERVAL_SECONDS, connectionModeValidator, modeDefinitionValidators, connectionModesValidator, };
|
|
19
|
+
//# sourceMappingURL=ConnectionModeConfig.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -20,6 +20,7 @@ export interface StreamingDataSourceConfig extends DataSourceConfig {
|
|
|
20
20
|
export interface DataSourcePaths {
|
|
21
21
|
pathGet(encoding: Encoding, plainContextString: string): string;
|
|
22
22
|
pathReport(encoding: Encoding, plainContextString: string): string;
|
|
23
|
+
pathPost(encoding: Encoding, plainContextString: string): string;
|
|
23
24
|
pathPing(encoding: Encoding, plainContextString: string): string;
|
|
24
25
|
}
|
|
25
26
|
//# sourceMappingURL=DataSourceConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSourceConfig.d.ts","sourceRoot":"","sources":["../../src/datasource/DataSourceConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC;IACvB,eAAe,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAE9B,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;CAClE"}
|
|
1
|
+
{"version":3,"file":"DataSourceConfig.d.ts","sourceRoot":"","sources":["../../src/datasource/DataSourceConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC;IACvB,eAAe,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAE9B,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEjE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;CAClE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DataSourcePaths } from './DataSourceConfig';
|
|
2
|
+
export interface DataSourceEndpoints {
|
|
3
|
+
polling: () => DataSourcePaths;
|
|
4
|
+
streaming: () => DataSourcePaths;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Creates endpoint paths for browser (client-side ID) FDv1 evaluation.
|
|
8
|
+
*
|
|
9
|
+
* @param clientSideId The client-side ID for this environment.
|
|
10
|
+
*/
|
|
11
|
+
export declare function browserFdv1Endpoints(clientSideId: string): DataSourceEndpoints;
|
|
12
|
+
/**
|
|
13
|
+
* Creates endpoint paths for mobile (mobile key) FDv1 evaluation.
|
|
14
|
+
*/
|
|
15
|
+
export declare function mobileFdv1Endpoints(): DataSourceEndpoints;
|
|
16
|
+
/**
|
|
17
|
+
* Creates endpoint paths for FDv2 evaluation.
|
|
18
|
+
* Unified for all client-side platforms per CSFDV2 Requirement 2.1.1.
|
|
19
|
+
*/
|
|
20
|
+
export declare function fdv2Endpoints(): DataSourceEndpoints;
|
|
21
|
+
//# sourceMappingURL=Endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Endpoints.d.ts","sourceRoot":"","sources":["../../src/datasource/Endpoints.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,eAAe,CAAC;IAC/B,SAAS,EAAE,MAAM,eAAe,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,CA+B9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,CA+BzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CA+BnD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PlatformDataSystemDefaults } from '../api/datasource';
|
|
2
|
+
declare const dataSystemValidators: {
|
|
3
|
+
initialConnectionMode: import("@launchdarkly/js-sdk-common").OneOf;
|
|
4
|
+
backgroundConnectionMode: import("@launchdarkly/js-sdk-common").OneOf;
|
|
5
|
+
automaticModeSwitching: import("../configuration/validateOptions").CompoundValidator;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Default FDv2 data system configuration for browser SDKs.
|
|
9
|
+
*/
|
|
10
|
+
declare const BROWSER_DATA_SYSTEM_DEFAULTS: PlatformDataSystemDefaults;
|
|
11
|
+
/**
|
|
12
|
+
* Default FDv2 data system configuration for mobile (React Native) SDKs.
|
|
13
|
+
*/
|
|
14
|
+
declare const MOBILE_DATA_SYSTEM_DEFAULTS: PlatformDataSystemDefaults;
|
|
15
|
+
/**
|
|
16
|
+
* Default FDv2 data system configuration for desktop SDKs (Electron, etc.).
|
|
17
|
+
*/
|
|
18
|
+
declare const DESKTOP_DATA_SYSTEM_DEFAULTS: PlatformDataSystemDefaults;
|
|
19
|
+
export { dataSystemValidators, BROWSER_DATA_SYSTEM_DEFAULTS, MOBILE_DATA_SYSTEM_DEFAULTS, DESKTOP_DATA_SYSTEM_DEFAULTS, };
|
|
20
|
+
//# sourceMappingURL=LDClientDataSystemOptions.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import FDv2ConnectionMode from '../api/datasource/FDv2ConnectionMode';
|
|
2
|
+
/**
|
|
3
|
+
* Network availability as reported by the platform.
|
|
4
|
+
* - `'available'`: network is reachable
|
|
5
|
+
* - `'unavailable'`: network is not reachable
|
|
6
|
+
*/
|
|
7
|
+
export type NetworkState = 'available' | 'unavailable';
|
|
8
|
+
/**
|
|
9
|
+
* Application lifecycle state as reported by the platform.
|
|
10
|
+
* - `'foreground'`: application is in the foreground / visible
|
|
11
|
+
* - `'background'`: application is in the background / hidden
|
|
12
|
+
*/
|
|
13
|
+
export type LifecycleState = 'foreground' | 'background';
|
|
14
|
+
/**
|
|
15
|
+
* The composite pending state tracked by the debounce manager.
|
|
16
|
+
* Each field represents one dimension of state that can change
|
|
17
|
+
* independently. This state accumulates during the debounce window
|
|
18
|
+
* and is delivered to the reconciliation callback when the timer fires.
|
|
19
|
+
*/
|
|
20
|
+
export interface PendingState {
|
|
21
|
+
readonly networkState: NetworkState;
|
|
22
|
+
readonly lifecycleState: LifecycleState;
|
|
23
|
+
readonly requestedMode: FDv2ConnectionMode;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Callback invoked when the debounce timer fires. Receives the
|
|
27
|
+
* final accumulated pending state after the debounce window closes.
|
|
28
|
+
*/
|
|
29
|
+
export type ReconciliationCallback = (pendingState: PendingState) => void;
|
|
30
|
+
/** Default debounce window duration in milliseconds. */
|
|
31
|
+
export declare const DEFAULT_DEBOUNCE_MS = 1000;
|
|
32
|
+
/**
|
|
33
|
+
* Manages debouncing of network availability, lifecycle, and
|
|
34
|
+
* connection mode change events. Each event updates the relevant
|
|
35
|
+
* component of the pending state and resets the debounce timer.
|
|
36
|
+
* When the timer fires, the reconciliation callback is invoked
|
|
37
|
+
* with the final combined pending state.
|
|
38
|
+
*
|
|
39
|
+
* `identify()` does NOT participate in the debounce window
|
|
40
|
+
* (CONNMODE spec 3.5.6). Consumers must handle identify separately.
|
|
41
|
+
*/
|
|
42
|
+
export interface StateDebounceManager {
|
|
43
|
+
/**
|
|
44
|
+
* Update the pending network state. Resets the debounce timer.
|
|
45
|
+
*/
|
|
46
|
+
setNetworkState(state: NetworkState): void;
|
|
47
|
+
/**
|
|
48
|
+
* Update the pending lifecycle state. Resets the debounce timer.
|
|
49
|
+
*/
|
|
50
|
+
setLifecycleState(state: LifecycleState): void;
|
|
51
|
+
/**
|
|
52
|
+
* Update the pending connection mode. Resets the debounce timer.
|
|
53
|
+
* This is how `setConnectionMode()` participates in debouncing
|
|
54
|
+
* (CONNMODE spec 3.5.5).
|
|
55
|
+
*/
|
|
56
|
+
setRequestedMode(mode: FDv2ConnectionMode): void;
|
|
57
|
+
/**
|
|
58
|
+
* Cancel any pending debounce timer and release resources.
|
|
59
|
+
* After close(), further calls to set* methods will not
|
|
60
|
+
* trigger reconciliation.
|
|
61
|
+
*/
|
|
62
|
+
close(): void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Configuration for creating a {@link StateDebounceManager}.
|
|
66
|
+
*/
|
|
67
|
+
export interface StateDebounceManagerConfig {
|
|
68
|
+
/** The initial pending state at construction time. */
|
|
69
|
+
initialState: PendingState;
|
|
70
|
+
/**
|
|
71
|
+
* Callback invoked when the debounce timer fires with the
|
|
72
|
+
* final resolved pending state.
|
|
73
|
+
*/
|
|
74
|
+
onReconcile: ReconciliationCallback;
|
|
75
|
+
/**
|
|
76
|
+
* Debounce window duration in milliseconds.
|
|
77
|
+
* @default 1000 (1 second, per CONNMODE spec 3.5.4)
|
|
78
|
+
*/
|
|
79
|
+
debounceMs?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates a {@link StateDebounceManager}.
|
|
83
|
+
*
|
|
84
|
+
* The manager accumulates state changes from network, lifecycle, and
|
|
85
|
+
* connection mode events. Each event updates the relevant component
|
|
86
|
+
* of the pending state and resets the debounce timer. When the timer
|
|
87
|
+
* fires, the reconciliation callback receives the final combined state.
|
|
88
|
+
*
|
|
89
|
+
* @param config Configuration for the debounce manager.
|
|
90
|
+
*/
|
|
91
|
+
export declare function createStateDebounceManager(config: StateDebounceManagerConfig): StateDebounceManager;
|
|
92
|
+
//# sourceMappingURL=StateDebounceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateDebounceManager.d.ts","sourceRoot":"","sources":["../../src/datasource/StateDebounceManager.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sCAAsC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;AAE1E,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAE3C;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAE/C;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEjD;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,YAAY,EAAE,YAAY,CAAC;IAE3B;;;OAGG;IACH,WAAW,EAAE,sBAAsB,CAAC;IAEpC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,0BAA0B,GACjC,oBAAoB,CA8DtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncQueue.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/AsyncQueue.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { FDv2SourceResult } from './FDv2SourceResult';
|
|
2
|
+
export declare const DEFAULT_FALLBACK_TIMEOUT_MS: number;
|
|
3
|
+
export declare const DEFAULT_RECOVERY_TIMEOUT_MS: number;
|
|
4
|
+
/**
|
|
5
|
+
* The type of condition that fired, determining the orchestrator's response.
|
|
6
|
+
* - `'fallback'`: move to the next available synchronizer
|
|
7
|
+
* - `'recovery'`: reset to the primary synchronizer
|
|
8
|
+
*/
|
|
9
|
+
export type ConditionType = 'fallback' | 'recovery';
|
|
10
|
+
/**
|
|
11
|
+
* A timed condition that races against `synchronizer.next()`. When the
|
|
12
|
+
* condition fires, it produces a {@link ConditionType} that the orchestration
|
|
13
|
+
* loop uses to decide what to do.
|
|
14
|
+
*/
|
|
15
|
+
export interface Condition {
|
|
16
|
+
/** Resolves when the condition fires. Created at construction time. */
|
|
17
|
+
readonly promise: Promise<ConditionType>;
|
|
18
|
+
/**
|
|
19
|
+
* Inform the condition about a synchronizer result. Some conditions use
|
|
20
|
+
* this to start or cancel their timers.
|
|
21
|
+
*/
|
|
22
|
+
inform(result: FDv2SourceResult): void;
|
|
23
|
+
/** Cancel any pending timers and clean up. */
|
|
24
|
+
close(): void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A group of conditions managed together. The group races all conditions
|
|
28
|
+
* and broadcasts results to all of them.
|
|
29
|
+
*/
|
|
30
|
+
export interface ConditionGroup {
|
|
31
|
+
/** Race all conditions. `undefined` if no conditions exist. */
|
|
32
|
+
readonly promise: Promise<ConditionType> | undefined;
|
|
33
|
+
/** Broadcast a result to all conditions. */
|
|
34
|
+
inform(result: FDv2SourceResult): void;
|
|
35
|
+
/** Close all conditions. */
|
|
36
|
+
close(): void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates a fallback condition. The condition starts a timer when an
|
|
40
|
+
* `interrupted` status is received and cancels it when a `changeSet` is
|
|
41
|
+
* received. If the timer fires, the condition resolves with `'fallback'`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function createFallbackCondition(timeoutMs: number): Condition;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a recovery condition. The condition starts a timer immediately
|
|
46
|
+
* and resolves with `'recovery'` when it fires. It ignores all `inform()`
|
|
47
|
+
* calls.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createRecoveryCondition(timeoutMs: number): Condition;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a group of conditions that are managed together.
|
|
52
|
+
*
|
|
53
|
+
* @param conditions The conditions to group.
|
|
54
|
+
*/
|
|
55
|
+
export declare function createConditionGroup(conditions: Condition[]): ConditionGroup;
|
|
56
|
+
/**
|
|
57
|
+
* Determines which conditions to create based on the synchronizer's position
|
|
58
|
+
* and availability.
|
|
59
|
+
*
|
|
60
|
+
* - If there is only one available synchronizer, no conditions are needed
|
|
61
|
+
* (there is nowhere to fall back to).
|
|
62
|
+
* - If the current synchronizer is the primary (first available), only a
|
|
63
|
+
* fallback condition is created.
|
|
64
|
+
* - If the current synchronizer is non-primary, both fallback and recovery
|
|
65
|
+
* conditions are created.
|
|
66
|
+
*
|
|
67
|
+
* @param availableSyncCount Number of available (non-blocked) synchronizers.
|
|
68
|
+
* @param isPrime Whether the current synchronizer is the primary.
|
|
69
|
+
* @param fallbackTimeoutMs Fallback condition timeout.
|
|
70
|
+
* @param recoveryTimeoutMs Recovery condition timeout.
|
|
71
|
+
*/
|
|
72
|
+
export declare function getConditions(availableSyncCount: number, isPrime: boolean, fallbackTimeoutMs?: number, recoveryTimeoutMs?: number): ConditionGroup;
|
|
73
|
+
//# sourceMappingURL=Conditions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Conditions.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/Conditions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AACzD,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AA2BzD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzC;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEvC,8CAA8C;IAC9C,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAErD,4CAA4C;IAC5C,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEvC,4BAA4B;IAC5B,KAAK,IAAI,IAAI,CAAC;CACf;AA4ED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAQpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,cAAc,CAY5E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,iBAAiB,GAAE,MAAoC,EACvD,iBAAiB,GAAE,MAAoC,GACtD,cAAc,CAahB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { internal, LDLogger } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
import { DataSourceStatusManager } from '../DataSourceStatusManager';
|
|
3
|
+
import { InitializerFactory, SynchronizerSlot } from './SourceManager';
|
|
4
|
+
/**
|
|
5
|
+
* Callback invoked when the orchestrator produces a changeSet payload.
|
|
6
|
+
*/
|
|
7
|
+
export type DataCallback = (payload: internal.Payload) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for the {@link FDv2DataSource} orchestrator.
|
|
10
|
+
*/
|
|
11
|
+
export interface FDv2DataSourceConfig {
|
|
12
|
+
/** Ordered list of initializer factories. */
|
|
13
|
+
initializerFactories: InitializerFactory[];
|
|
14
|
+
/** Ordered list of synchronizer slots with state. */
|
|
15
|
+
synchronizerSlots: SynchronizerSlot[];
|
|
16
|
+
/** Callback to deliver payloads to the consuming layer. */
|
|
17
|
+
dataCallback: DataCallback;
|
|
18
|
+
/** Status manager for reporting data source state transitions. */
|
|
19
|
+
statusManager: DataSourceStatusManager;
|
|
20
|
+
/**
|
|
21
|
+
* Getter for the current selector (basis) string. The selector is managed
|
|
22
|
+
* externally by the consuming layer — the orchestrator reads it via this
|
|
23
|
+
* getter and passes it through to source factories.
|
|
24
|
+
*/
|
|
25
|
+
selectorGetter: () => string | undefined;
|
|
26
|
+
/** Optional logger. */
|
|
27
|
+
logger?: LDLogger;
|
|
28
|
+
/** Fallback condition timeout in ms (default 120s). */
|
|
29
|
+
fallbackTimeoutMs?: number;
|
|
30
|
+
/** Recovery condition timeout in ms (default 300s). */
|
|
31
|
+
recoveryTimeoutMs?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The FDv2 data source orchestrator. Coordinates initializers and
|
|
35
|
+
* synchronizers to provide a resilient flag data pipeline.
|
|
36
|
+
*/
|
|
37
|
+
export interface FDv2DataSource {
|
|
38
|
+
/**
|
|
39
|
+
* Start the orchestration loop. Returns a promise that resolves when
|
|
40
|
+
* initialization is complete (first basis data received or all initializers
|
|
41
|
+
* exhausted with data). The orchestration loop continues running in the
|
|
42
|
+
* background after the promise resolves, driving synchronizers.
|
|
43
|
+
*/
|
|
44
|
+
start(): Promise<void>;
|
|
45
|
+
/** Close the orchestrator. Stops all active sources. */
|
|
46
|
+
close(): void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates an {@link FDv2DataSource} orchestrator.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createFDv2DataSource(config: FDv2DataSourceConfig): FDv2DataSource;
|
|
52
|
+
//# sourceMappingURL=FDv2DataSource.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Encoding, LDHeaders, Requests, ServiceEndpoints } from '@launchdarkly/js-sdk-common';
|
|
2
|
+
import { DataSourcePaths } from '../DataSourceConfig';
|
|
3
|
+
/**
|
|
4
|
+
* Response from an FDv2 poll request, providing access to status code,
|
|
5
|
+
* headers, and body.
|
|
6
|
+
*/
|
|
7
|
+
export interface FDv2PollResponse {
|
|
8
|
+
status: number;
|
|
9
|
+
headers: {
|
|
10
|
+
get(name: string): string | null;
|
|
11
|
+
};
|
|
12
|
+
body: string | null;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Makes HTTP requests to FDv2 polling endpoints and returns full response
|
|
16
|
+
* information including status code and headers.
|
|
17
|
+
*/
|
|
18
|
+
export interface FDv2Requestor {
|
|
19
|
+
/**
|
|
20
|
+
* Perform a poll request.
|
|
21
|
+
*
|
|
22
|
+
* @param basis Optional opaque state string from the most recent
|
|
23
|
+
* `payload-transferred` event, enabling delta-based updates.
|
|
24
|
+
* @returns The full HTTP response.
|
|
25
|
+
*/
|
|
26
|
+
poll(basis?: string): Promise<FDv2PollResponse>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates an {@link FDv2Requestor} for client-side FDv2 polling.
|
|
30
|
+
*
|
|
31
|
+
* @param plainContextString The JSON-serialized evaluation context.
|
|
32
|
+
* @param serviceEndpoints Service endpoint configuration.
|
|
33
|
+
* @param paths FDv2 polling endpoint paths.
|
|
34
|
+
* @param requests Platform HTTP abstraction.
|
|
35
|
+
* @param encoding Platform encoding abstraction.
|
|
36
|
+
* @param baseHeaders Default HTTP headers (e.g. authorization).
|
|
37
|
+
* @param baseQueryParams Additional query parameters to include on every request.
|
|
38
|
+
* @param usePost If true, use POST with context in body instead of GET with
|
|
39
|
+
* context in URL path.
|
|
40
|
+
*/
|
|
41
|
+
export declare function makeFDv2Requestor(plainContextString: string, serviceEndpoints: ServiceEndpoints, paths: DataSourcePaths, requests: Requests, encoding: Encoding, baseHeaders?: LDHeaders, baseQueryParams?: {
|
|
42
|
+
key: string;
|
|
43
|
+
value: string;
|
|
44
|
+
}[], usePost?: boolean): FDv2Requestor;
|
|
45
|
+
//# sourceMappingURL=FDv2Requestor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FDv2Requestor.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/FDv2Requestor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,SAAS,EACT,QAAQ,EACR,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACjD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,SAAS,EACvB,eAAe,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAClD,OAAO,CAAC,EAAE,OAAO,GAChB,aAAa,CA0Cf"}
|