@configdirector/openfeature-server-provider 1.11.0 → 1.12.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/README.md +16 -0
- package/dist/configdirector-openfeature-server-provider.cjs +1 -1
- package/dist/configdirector-openfeature-server-provider.d.cts +34 -12
- package/dist/configdirector-openfeature-server-provider.d.cts.map +1 -1
- package/dist/configdirector-openfeature-server-provider.d.mts +34 -12
- package/dist/configdirector-openfeature-server-provider.d.mts.map +1 -1
- package/dist/configdirector-openfeature-server-provider.mjs +2 -2
- package/dist/configdirector-openfeature-server-provider.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -24,13 +24,24 @@ interface ConfigDirectorLogger {
|
|
|
24
24
|
interface ConfigDirectorLogMessageDecorator {
|
|
25
25
|
decorateMessage(message: string): string;
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Why an evaluation returned the value it did. `found-match` returns a value from ConfigDirector,
|
|
29
|
+
* and `cached` a value kept on the device while a client SDK waits for live values. `value-missing`
|
|
30
|
+
* returns the in-code default value because the config has no value. Every other reason returns the
|
|
31
|
+
* in-code default value because of an error: the config does not exist (`config-state-missing`), no
|
|
32
|
+
* values have arrived yet (`client-not-ready`), or the value cannot be read as the type of the in-code
|
|
33
|
+
* default value.
|
|
34
|
+
*/
|
|
35
|
+
type EvaluationReason = "found-match" | "config-state-missing" | "client-not-ready" | "type-mismatch" | "value-missing" | "invalid-number" | "invalid-json" | "invalid-boolean" | "cached";
|
|
36
|
+
/**
|
|
37
|
+
* One evaluation of a config: the value it returned, why, and the context it was evaluated for.
|
|
38
|
+
*/
|
|
39
|
+
type ConfigEvaluation<T extends ConfigValueType = ConfigValueType> = {
|
|
40
|
+
/** The config key that was evaluated. */key: string; /** The value returned, which is the in-code default value when {@link isDefaultValue} is `true`. */
|
|
41
|
+
value: T; /** The ID ConfigDirector assigned to the value returned, when ConfigDirector sent one with it. */
|
|
42
|
+
valueId?: string; /** Whether the evaluation returned the in-code default value. */
|
|
43
|
+
isDefaultValue: boolean; /** Why the evaluation returned this value. */
|
|
44
|
+
reason: EvaluationReason; /** The context the config was evaluated for, if any. */
|
|
34
45
|
context?: ConfigDirectorContext;
|
|
35
46
|
};
|
|
36
47
|
/**
|
|
@@ -43,9 +54,11 @@ type ConfigDirectorContext = {
|
|
|
43
54
|
* The context's identifier. This should be a value that uniquely identifies the user or other
|
|
44
55
|
* entity among contexts of the same {@link kind}.
|
|
45
56
|
* In the case of anonymous users, you could generate a UUID or alternatively not provide
|
|
46
|
-
* the {@link id}
|
|
47
|
-
*
|
|
48
|
-
*
|
|
57
|
+
* the {@link id}. In a client SDK, ConfigDirector then derives an identifier from an ID the SDK
|
|
58
|
+
* stores for the app install or the website, so it stays the same until the app is uninstalled
|
|
59
|
+
* or the site's data is cleared. However, keep in mind that this value is used for segmenting
|
|
60
|
+
* contexts in percentage rollouts, and changes to the {@link id} could result in the context
|
|
61
|
+
* being assigned to a different percentile.
|
|
49
62
|
*/
|
|
50
63
|
id?: string;
|
|
51
64
|
/**
|
|
@@ -310,6 +323,17 @@ interface ConfigDirectorClient {
|
|
|
310
323
|
* @param context The user's context to be used for targeting rules evaluation (optional)
|
|
311
324
|
*/
|
|
312
325
|
getValue<T extends ConfigValueType>(configKey: string, defaultValue: T, context?: ConfigDirectorContext): T;
|
|
326
|
+
/**
|
|
327
|
+
* Evaluates a config as {@link getValue} does and returns the evaluation: the value, the reason it
|
|
328
|
+
* was served and its value ID. Like every read, it fires `configEvaluated` and is counted in
|
|
329
|
+
* telemetry.
|
|
330
|
+
*
|
|
331
|
+
* @returns The evaluation, whose `value` is what {@link getValue} returns
|
|
332
|
+
* @param configKey The config key to evaluate
|
|
333
|
+
* @param defaultValue The in-code default value, returned when no value from ConfigDirector can be served
|
|
334
|
+
* @param context The user's context to be used for targeting rules evaluation (optional)
|
|
335
|
+
*/
|
|
336
|
+
evaluate<T extends ConfigValueType>(configKey: string, defaultValue: T, context?: ConfigDirectorContext): ConfigEvaluation<T>;
|
|
313
337
|
/**
|
|
314
338
|
* Watches for changes to a a config evaluation value. Whenever the config value changes, the
|
|
315
339
|
* provided callback function will be called with the new value. Changes can happen due to updates
|
|
@@ -367,7 +391,6 @@ declare class ConfigDirectorInitializationError extends Error {
|
|
|
367
391
|
//#region src/ConfigDirectorProvider.d.ts
|
|
368
392
|
declare class ConfigDirectorProvider implements Provider {
|
|
369
393
|
private readonly client;
|
|
370
|
-
private readonly readyHandler;
|
|
371
394
|
readonly metadata: ProviderMetadata;
|
|
372
395
|
readonly runsOn: Paradigm;
|
|
373
396
|
readonly events: OpenFeatureEventEmitter;
|
|
@@ -386,7 +409,6 @@ declare class ConfigDirectorProvider implements Provider {
|
|
|
386
409
|
resolveNumberEvaluation(flagKey: string, defaultValue: number, context: EvaluationContext): Promise<ResolutionDetails<number>>;
|
|
387
410
|
resolveObjectEvaluation<T extends JsonValue>(flagKey: string, defaultValue: T, context: EvaluationContext): Promise<ResolutionDetails<T>>;
|
|
388
411
|
onClose?(): Promise<void>;
|
|
389
|
-
private evaluate;
|
|
390
412
|
private mapContext;
|
|
391
413
|
}
|
|
392
414
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configdirector-openfeature-server-provider.d.cts","names":[],"sources":["../../shared/src/types.ts","../../shared/src/native-values.ts","../../js-server-sdk/src/types.ts","../../shared/src/errors.ts","../src/ConfigDirectorProvider.ts"],"mappings":";;;cAAa,cAAA;AAAA,KAUD,UAAA,WAAqB,cAAA;AAAA,KAErB,kBAAA;EAAA,CAAwB,GAAA;AAAA;AAAA,KAExB,eAAA,wCAAuD,kBAAA;AAAA,KAEvD,WAAA;EACV,EAAA;EACA,GAAA;EACA,IAAA,EAAM,UAAA;EACN,KAAA;EACA,OAAA;AAAA;AAAA,KAQU,0BAAA;AAAA,UAEK,oBAAA;EACf,KAAA,CAAM,OAAA,aAAoB,IAAA;EAE1B,IAAA,CAAK,OAAA,aAAoB,IAAA;EAEzB,IAAA,CAAK,OAAA,aAAoB,IAAA;EAEzB,KAAA,CAAM,OAAA,aAAoB,IAAA;AAAA;AAAA,UAGX,iCAAA;EACf,eAAA,CAAgB,OAAA;AAAA
|
|
1
|
+
{"version":3,"file":"configdirector-openfeature-server-provider.d.cts","names":[],"sources":["../../shared/src/types.ts","../../shared/src/native-values.ts","../../js-server-sdk/src/types.ts","../../shared/src/errors.ts","../src/ConfigDirectorProvider.ts"],"mappings":";;;cAAa,cAAA;AAAA,KAUD,UAAA,WAAqB,cAAA;AAAA,KAErB,kBAAA;EAAA,CAAwB,GAAA;AAAA;AAAA,KAExB,eAAA,wCAAuD,kBAAA;AAAA,KAEvD,WAAA;EACV,EAAA;EACA,GAAA;EACA,IAAA,EAAM,UAAA;EACN,KAAA;EACA,OAAA;AAAA;AAAA,KAQU,0BAAA;AAAA,UAEK,oBAAA;EACf,KAAA,CAAM,OAAA,aAAoB,IAAA;EAE1B,IAAA,CAAK,OAAA,aAAoB,IAAA;EAEzB,IAAA,CAAK,OAAA,aAAoB,IAAA;EAEzB,KAAA,CAAM,OAAA,aAAoB,IAAA;AAAA;AAAA,UAGX,iCAAA;EACf,eAAA,CAAgB,OAAA;AAAA;;;;;;;;;KAWN,gBAAA;;;;KAcA,gBAAA,WAA2B,eAAA,GAAkB,eAAA;EApCxC,yCAsCf,GAAA;EAEA,KAAA,EAAO,CAAA,EAvCP;EAyCA,OAAA,WAzC0B;EA2C1B,cAAA,WAzCK;EA2CL,MAAA,EAAQ,gBAAA,EAzCR;EA2CA,OAAA,GAAU,qBAAA;AAAA;;;;;;KAOA,qBAAA;EA7CsC;;;;AAYlD;;;;;AAcA;EA8BE,EAAA;EA9B0B;;;;;;;;;;;EA2C1B,IAAA;EAvCA;;;;EA6CA,IAAA;EAvCQ;;;;EA6CR,MAAA;IAAA,CAAY,GAAA;EAAA;;;;;;;;EASZ,SAAA;AAAA;;AAOF;;;KAAY,yBAAA;EACV,UAAA;EACA,OAAA;AAAA;AAAA,KAGU,cAAA;;;KC5IA,eAAA,sCAAqD,eAAA;EAAA,CAAuB,GAAA,WAAc,eAAA;AAAA;AAAA,KAE1F,WAAA,+BAA0C,eAAA;EAAA,CAAuB,GAAA,WAAc,eAAA;AAAA;AAAA,KAE/E,YAAA,GAAe,MAAA,SAAe,WAAA;;;;;;ADG1C;;KEqBY,YAAA,GAAe,WAAA;;;AFnB3B;;KEyBY,aAAA,GAAgB,YAAA;;;AFvB5B;KE4BY,iBAAA;;;;AF1BZ;;;;;;;;;EEuCE,IAAA,GAAO,cAAA;EFlCA;;AAQT;;;;;AAEA;;;EEmCE,IAAA;EFlCA;;;;;;;EE0CA,MAAA,GAAS,aAAA;EFtCgB;;;;;;AAK3B;EEyCE,eAAA;;;;AF7BF;;;;;AAcA;EEyBE,OAAA;EFzB0B;;;;;EE+B1B,GAAA;AAAA;;;;KAMU,2BAAA;EFnCV;;;EEuCA,QAAA,GAAW,yBAAA;EFjCX;;;EEqCA,UAAA,GAAa,iBAAA;EFjCH;;;AAOZ;;;;;;;;;;EEwCE,MAAA,GAAS,oBAAA;EFKA;AAOX;;;;;AAKA;EERE,SAAA;IFQwB;;;;;;AC5I1B;;;IC8II,eAAA;ID9I6D;;;;;AAEjE;;;ICsJI,aAAA;EAAA;EDtJyE;;;;AAE7E;;;;;;;;ACwBA;;;EA8IE,KAAA,GAAQ,WAAA;AAAA;AAxIV;;;AAAA,KA8IY,oBAAA,GAAuB,2BAAA;EACjC,UAAA,EAAY,iBAAA;IAAsB,IAAA;EAAA;AAAA;AAAA,KAGxB,YAAA;EACV,cAAA;IAAkB,IAAA;IAAgB,WAAA;EAAA;EAClC,WAAA;EACA,eAAA;IAAmB,UAAA,EAAY,gBAAA;EAAA;EAC/B,eAAA;IAAmB,KAAA,EAAO,KAAA;EAAA;AAAA;AAAA,KAGhB,WAAA;EACV,WAAA,GAAc,WAAA,kBAA6B,WAAA;EAC3C,cAAA,GAAiB,WAAA,qBAAgC,WAAA;EACjD,eAAA,GAAkB,WAAA,sBAAiC,WAAA;EACnD,eAAA,GAAkB,WAAA,sBAAiC,WAAA;AAAA;AAAA,KAGzC,WAAA,sBAAiC,YAAA,KAAiB,OAAA,EAAS,YAAA,CAAa,MAAA;AAAA,KAExE,YAAA,WAAuB,eAAA,KAAoB,OAAA,EAAS,CAAA;;;;;;;UAQ/C,oBAAA;EApDb;;;;;AAwBJ;;;;;;EAwCE,UAAA,IAAc,OAAA;EAvCoB;;;AAGpC;;;EAHoC,IA+C9B,OAAA;EA3CJ;;;;;;;;;;EAuDA,QAAA,WAAmB,eAAA,EAAiB,SAAA,UAAmB,YAAA,EAAc,CAAA,EAAG,OAAA,GAAU,qBAAA,GAAwB,CAAA;EApD3E;AAGjC;;;;;;;;;EA6DE,QAAA,WAAmB,eAAA,EACjB,SAAA,UACA,YAAA,EAAc,CAAA,EACd,OAAA,GAAU,qBAAA,GACT,gBAAA,CAAiB,CAAA;EA7D+B;;;;;;;;;;;;EA2EnD,KAAA,WAAgB,eAAA,EACd,SAAA,UACA,YAAA,EAAc,CAAA,EACd,QAAA,EAAU,YAAA,CAAa,CAAA,GACvB,OAAA,GAAU,qBAAA;EA/EM;;;;AAGpB;;;;EAuFE,OAAA,WAAkB,eAAA,EAAiB,SAAA,UAAmB,QAAA,GAAW,YAAA,CAAa,CAAA;EAvFI;;;EA4FlF,UAAA;EA5F2C;;;;;;AAE7C;EAmGE,aAAA,CAAc,OAAA;IACZ,OAAA,GAAU,qBAAA;IACV,UAAA;EAAA,IACE,MAAA,SAAe,WAAA;EAEnB,EAAA,iBAAmB,YAAA,EAAc,SAAA,EAAW,CAAA,EAAG,OAAA,GAAU,IAAA,EAAM,YAAA,CAAa,CAAA;EAE5E,GAAA,iBAAoB,YAAA,EAAc,SAAA,EAAW,CAAA,EAAG,OAAA,IAAW,IAAA,EAAM,YAAA,CAAa,CAAA;EA1GzB;;;AAQvD;;;EA0GE,OAAA;AAAA;;;cCnSW,iCAAA,SAA0C,KAAA;EAAA,SAC5B,IAAA;cAEb,OAAA;AAAA;;;cCTD,sBAAA,YAAkC,QAAA;EAAA,iBAC5B,MAAA;EAAA,SAER,QAAA,EAAU,gBAAA;EAAA,SAGV,MAAA,EAAQ,QAAA;EAAA,SACR,MAAA,EAAM,uBAAA;EJbL;;;cIkBS,YAAA,UAAsB,aAAA,GAAgB,2BAAA;EJlBZ;AAE/C;;;cIqBqB,aAAA,EAAe,oBAAA;EAW5B,UAAA,CAAA,GAAU,OAAA;EAYhB,wBAAA,CACE,OAAA,UACA,YAAA,WACA,OAAA,EAAS,iBAAA,GACR,OAAA,CAAQ,iBAAA;EAMX,uBAAA,CACE,OAAA,UACA,YAAA,UACA,OAAA,EAAS,iBAAA,GACR,OAAA,CAAQ,iBAAA;EAMX,uBAAA,CACE,OAAA,UACA,YAAA,UACA,OAAA,EAAS,iBAAA,GACR,OAAA,CAAQ,iBAAA;EAMX,uBAAA,WAAkC,SAAA,CAAA,CAChC,OAAA,UACA,YAAA,EAAc,CAAA,EACd,OAAA,EAAS,iBAAA,GACR,OAAA,CAAQ,iBAAA,CAAkB,CAAA;EAQ7B,OAAA,CAAA,CAAA,GAAY,OAAA;EAAA,QAKJ,UAAA;AAAA"}
|
|
@@ -24,13 +24,24 @@ interface ConfigDirectorLogger {
|
|
|
24
24
|
interface ConfigDirectorLogMessageDecorator {
|
|
25
25
|
decorateMessage(message: string): string;
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Why an evaluation returned the value it did. `found-match` returns a value from ConfigDirector,
|
|
29
|
+
* and `cached` a value kept on the device while a client SDK waits for live values. `value-missing`
|
|
30
|
+
* returns the in-code default value because the config has no value. Every other reason returns the
|
|
31
|
+
* in-code default value because of an error: the config does not exist (`config-state-missing`), no
|
|
32
|
+
* values have arrived yet (`client-not-ready`), or the value cannot be read as the type of the in-code
|
|
33
|
+
* default value.
|
|
34
|
+
*/
|
|
35
|
+
type EvaluationReason = "found-match" | "config-state-missing" | "client-not-ready" | "type-mismatch" | "value-missing" | "invalid-number" | "invalid-json" | "invalid-boolean" | "cached";
|
|
36
|
+
/**
|
|
37
|
+
* One evaluation of a config: the value it returned, why, and the context it was evaluated for.
|
|
38
|
+
*/
|
|
39
|
+
type ConfigEvaluation<T extends ConfigValueType = ConfigValueType> = {
|
|
40
|
+
/** The config key that was evaluated. */key: string; /** The value returned, which is the in-code default value when {@link isDefaultValue} is `true`. */
|
|
41
|
+
value: T; /** The ID ConfigDirector assigned to the value returned, when ConfigDirector sent one with it. */
|
|
42
|
+
valueId?: string; /** Whether the evaluation returned the in-code default value. */
|
|
43
|
+
isDefaultValue: boolean; /** Why the evaluation returned this value. */
|
|
44
|
+
reason: EvaluationReason; /** The context the config was evaluated for, if any. */
|
|
34
45
|
context?: ConfigDirectorContext;
|
|
35
46
|
};
|
|
36
47
|
/**
|
|
@@ -43,9 +54,11 @@ type ConfigDirectorContext = {
|
|
|
43
54
|
* The context's identifier. This should be a value that uniquely identifies the user or other
|
|
44
55
|
* entity among contexts of the same {@link kind}.
|
|
45
56
|
* In the case of anonymous users, you could generate a UUID or alternatively not provide
|
|
46
|
-
* the {@link id}
|
|
47
|
-
*
|
|
48
|
-
*
|
|
57
|
+
* the {@link id}. In a client SDK, ConfigDirector then derives an identifier from an ID the SDK
|
|
58
|
+
* stores for the app install or the website, so it stays the same until the app is uninstalled
|
|
59
|
+
* or the site's data is cleared. However, keep in mind that this value is used for segmenting
|
|
60
|
+
* contexts in percentage rollouts, and changes to the {@link id} could result in the context
|
|
61
|
+
* being assigned to a different percentile.
|
|
49
62
|
*/
|
|
50
63
|
id?: string;
|
|
51
64
|
/**
|
|
@@ -310,6 +323,17 @@ interface ConfigDirectorClient {
|
|
|
310
323
|
* @param context The user's context to be used for targeting rules evaluation (optional)
|
|
311
324
|
*/
|
|
312
325
|
getValue<T extends ConfigValueType>(configKey: string, defaultValue: T, context?: ConfigDirectorContext): T;
|
|
326
|
+
/**
|
|
327
|
+
* Evaluates a config as {@link getValue} does and returns the evaluation: the value, the reason it
|
|
328
|
+
* was served and its value ID. Like every read, it fires `configEvaluated` and is counted in
|
|
329
|
+
* telemetry.
|
|
330
|
+
*
|
|
331
|
+
* @returns The evaluation, whose `value` is what {@link getValue} returns
|
|
332
|
+
* @param configKey The config key to evaluate
|
|
333
|
+
* @param defaultValue The in-code default value, returned when no value from ConfigDirector can be served
|
|
334
|
+
* @param context The user's context to be used for targeting rules evaluation (optional)
|
|
335
|
+
*/
|
|
336
|
+
evaluate<T extends ConfigValueType>(configKey: string, defaultValue: T, context?: ConfigDirectorContext): ConfigEvaluation<T>;
|
|
313
337
|
/**
|
|
314
338
|
* Watches for changes to a a config evaluation value. Whenever the config value changes, the
|
|
315
339
|
* provided callback function will be called with the new value. Changes can happen due to updates
|
|
@@ -367,7 +391,6 @@ declare class ConfigDirectorInitializationError extends Error {
|
|
|
367
391
|
//#region src/ConfigDirectorProvider.d.ts
|
|
368
392
|
declare class ConfigDirectorProvider implements Provider {
|
|
369
393
|
private readonly client;
|
|
370
|
-
private readonly readyHandler;
|
|
371
394
|
readonly metadata: ProviderMetadata;
|
|
372
395
|
readonly runsOn: Paradigm;
|
|
373
396
|
readonly events: OpenFeatureEventEmitter;
|
|
@@ -386,7 +409,6 @@ declare class ConfigDirectorProvider implements Provider {
|
|
|
386
409
|
resolveNumberEvaluation(flagKey: string, defaultValue: number, context: EvaluationContext): Promise<ResolutionDetails<number>>;
|
|
387
410
|
resolveObjectEvaluation<T extends JsonValue>(flagKey: string, defaultValue: T, context: EvaluationContext): Promise<ResolutionDetails<T>>;
|
|
388
411
|
onClose?(): Promise<void>;
|
|
389
|
-
private evaluate;
|
|
390
412
|
private mapContext;
|
|
391
413
|
}
|
|
392
414
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configdirector-openfeature-server-provider.d.mts","names":[],"sources":["../../shared/src/types.ts","../../shared/src/native-values.ts","../../js-server-sdk/src/types.ts","../../shared/src/errors.ts","../src/ConfigDirectorProvider.ts"],"mappings":";;;cAAa,cAAA;AAAA,KAUD,UAAA,WAAqB,cAAA;AAAA,KAErB,kBAAA;EAAA,CAAwB,GAAA;AAAA;AAAA,KAExB,eAAA,wCAAuD,kBAAA;AAAA,KAEvD,WAAA;EACV,EAAA;EACA,GAAA;EACA,IAAA,EAAM,UAAA;EACN,KAAA;EACA,OAAA;AAAA;AAAA,KAQU,0BAAA;AAAA,UAEK,oBAAA;EACf,KAAA,CAAM,OAAA,aAAoB,IAAA;EAE1B,IAAA,CAAK,OAAA,aAAoB,IAAA;EAEzB,IAAA,CAAK,OAAA,aAAoB,IAAA;EAEzB,KAAA,CAAM,OAAA,aAAoB,IAAA;AAAA;AAAA,UAGX,iCAAA;EACf,eAAA,CAAgB,OAAA;AAAA
|
|
1
|
+
{"version":3,"file":"configdirector-openfeature-server-provider.d.mts","names":[],"sources":["../../shared/src/types.ts","../../shared/src/native-values.ts","../../js-server-sdk/src/types.ts","../../shared/src/errors.ts","../src/ConfigDirectorProvider.ts"],"mappings":"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"}
|