@openfeature/flagd-provider 0.7.5 → 0.7.7
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/index.cjs +4478 -1544
- package/index.js +4479 -1542
- package/package.json +5 -6
- package/src/index.d.ts +1 -1
- package/src/lib/configuration.d.ts +55 -55
- package/src/lib/constants.d.ts +5 -5
- package/src/lib/flagd-provider.d.ts +25 -25
- package/src/lib/service/grpc/service.d.ts +50 -47
- package/src/lib/service/service.d.ts +8 -8
- package/src/package.json +1 -1
- package/src/proto/ts/google/protobuf/struct.d.ts +184 -184
- package/src/proto/ts/schema/v1/schema.client.d.ts +96 -96
- package/src/proto/ts/schema/v1/schema.d.ts +490 -490
- package/src/proto/ts/sync/v1/sync_service.client.d.ts +46 -46
- package/src/proto/ts/sync/v1/sync_service.d.ts +183 -153
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfeature/flagd-provider",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.7",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"publish-if-not-exists": "cp $NPM_CONFIG_USERCONFIG .npmrc && if [ \"$(npm show $npm_package_name@$npm_package_version version)\" = \"$(npm run current-version -s)\" ]; then echo 'already published, skipping'; else npm publish --access public; fi",
|
|
6
6
|
"current-version": "echo $npm_package_version"
|
|
7
7
|
},
|
|
8
8
|
"peerDependencies": {
|
|
9
|
+
"@grpc/grpc-js": "^1.6.0",
|
|
9
10
|
"@openfeature/js-sdk": "^1.1.0"
|
|
10
11
|
},
|
|
11
12
|
"module": "./index.js",
|
|
@@ -20,10 +21,8 @@
|
|
|
20
21
|
}
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"@
|
|
24
|
-
"@protobuf-ts/
|
|
25
|
-
"
|
|
26
|
-
"@protobuf-ts/runtime-rpc": "2.8.2",
|
|
27
|
-
"lru-cache": "^7.14.1"
|
|
24
|
+
"@protobuf-ts/grpc-transport": "2.9.0",
|
|
25
|
+
"@protobuf-ts/runtime-rpc": "2.9.0",
|
|
26
|
+
"lru-cache": "10.0.0"
|
|
28
27
|
}
|
|
29
28
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './lib/flagd-provider';
|
|
1
|
+
export * from './lib/flagd-provider';
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
export type CacheOption = 'lru' | 'disabled';
|
|
2
|
-
export interface Config {
|
|
3
|
-
/**
|
|
4
|
-
* The domain name or IP address of flagd.
|
|
5
|
-
*
|
|
6
|
-
* @default localhost
|
|
7
|
-
*/
|
|
8
|
-
host: string;
|
|
9
|
-
/**
|
|
10
|
-
* The port flagd is listen on.
|
|
11
|
-
*
|
|
12
|
-
* @default 8013
|
|
13
|
-
*/
|
|
14
|
-
port: number;
|
|
15
|
-
/**
|
|
16
|
-
* Determines if TLS should be used.
|
|
17
|
-
*
|
|
18
|
-
* @default false
|
|
19
|
-
*/
|
|
20
|
-
tls: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* When set, a unix socket connection is used.
|
|
23
|
-
*
|
|
24
|
-
* @example "/tmp/flagd.socks"
|
|
25
|
-
*/
|
|
26
|
-
socketPath?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Cache implementation to use (or disabled).
|
|
29
|
-
*
|
|
30
|
-
* @default 'lru'
|
|
31
|
-
*/
|
|
32
|
-
cache?: CacheOption;
|
|
33
|
-
/**
|
|
34
|
-
* Max cache size (items).
|
|
35
|
-
*
|
|
36
|
-
* @default 1000
|
|
37
|
-
*/
|
|
38
|
-
maxCacheSize?: number;
|
|
39
|
-
/**
|
|
40
|
-
* Amount of times to attempt to reconnect to the event stream.
|
|
41
|
-
*
|
|
42
|
-
* @default 5
|
|
43
|
-
*/
|
|
44
|
-
maxEventStreamRetries?: number;
|
|
45
|
-
}
|
|
46
|
-
export type FlagdProviderOptions = Partial<Config>;
|
|
47
|
-
export declare function getConfig(options?: FlagdProviderOptions): {
|
|
48
|
-
host: string;
|
|
49
|
-
port: number;
|
|
50
|
-
tls: boolean;
|
|
51
|
-
socketPath?: string | undefined;
|
|
52
|
-
cache?: CacheOption | undefined;
|
|
53
|
-
maxCacheSize?: number | undefined;
|
|
54
|
-
maxEventStreamRetries?: number | undefined;
|
|
55
|
-
};
|
|
1
|
+
export type CacheOption = 'lru' | 'disabled';
|
|
2
|
+
export interface Config {
|
|
3
|
+
/**
|
|
4
|
+
* The domain name or IP address of flagd.
|
|
5
|
+
*
|
|
6
|
+
* @default localhost
|
|
7
|
+
*/
|
|
8
|
+
host: string;
|
|
9
|
+
/**
|
|
10
|
+
* The port flagd is listen on.
|
|
11
|
+
*
|
|
12
|
+
* @default 8013
|
|
13
|
+
*/
|
|
14
|
+
port: number;
|
|
15
|
+
/**
|
|
16
|
+
* Determines if TLS should be used.
|
|
17
|
+
*
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
tls: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* When set, a unix socket connection is used.
|
|
23
|
+
*
|
|
24
|
+
* @example "/tmp/flagd.socks"
|
|
25
|
+
*/
|
|
26
|
+
socketPath?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Cache implementation to use (or disabled).
|
|
29
|
+
*
|
|
30
|
+
* @default 'lru'
|
|
31
|
+
*/
|
|
32
|
+
cache?: CacheOption;
|
|
33
|
+
/**
|
|
34
|
+
* Max cache size (items).
|
|
35
|
+
*
|
|
36
|
+
* @default 1000
|
|
37
|
+
*/
|
|
38
|
+
maxCacheSize?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Amount of times to attempt to reconnect to the event stream.
|
|
41
|
+
*
|
|
42
|
+
* @default 5
|
|
43
|
+
*/
|
|
44
|
+
maxEventStreamRetries?: number;
|
|
45
|
+
}
|
|
46
|
+
export type FlagdProviderOptions = Partial<Config>;
|
|
47
|
+
export declare function getConfig(options?: FlagdProviderOptions): {
|
|
48
|
+
host: string;
|
|
49
|
+
port: number;
|
|
50
|
+
tls: boolean;
|
|
51
|
+
socketPath?: string | undefined;
|
|
52
|
+
cache?: CacheOption | undefined;
|
|
53
|
+
maxCacheSize?: number | undefined;
|
|
54
|
+
maxEventStreamRetries?: number | undefined;
|
|
55
|
+
};
|
package/src/lib/constants.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const BASE_EVENT_STREAM_RETRY_BACKOFF_MS = 1000;
|
|
2
|
-
export declare const DEFAULT_MAX_EVENT_STREAM_RETRIES = 5;
|
|
3
|
-
export declare const EVENT_CONFIGURATION_CHANGE = "configuration_change";
|
|
4
|
-
export declare const EVENT_PROVIDER_READY = "provider_ready";
|
|
5
|
-
export declare const DEFAULT_MAX_CACHE_SIZE = 1000;
|
|
1
|
+
export declare const BASE_EVENT_STREAM_RETRY_BACKOFF_MS = 1000;
|
|
2
|
+
export declare const DEFAULT_MAX_EVENT_STREAM_RETRIES = 5;
|
|
3
|
+
export declare const EVENT_CONFIGURATION_CHANGE = "configuration_change";
|
|
4
|
+
export declare const EVENT_PROVIDER_READY = "provider_ready";
|
|
5
|
+
export declare const DEFAULT_MAX_CACHE_SIZE = 1000;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { EvaluationContext, JsonValue, Logger, Provider, ResolutionDetails } from '@openfeature/js-sdk';
|
|
2
|
-
import { FlagdProviderOptions } from './configuration';
|
|
3
|
-
import { Service } from './service/service';
|
|
4
|
-
export declare class FlagdProvider implements Provider {
|
|
5
|
-
private logger?;
|
|
6
|
-
metadata: {
|
|
7
|
-
name: string;
|
|
8
|
-
};
|
|
9
|
-
private readonly _service;
|
|
10
|
-
/**
|
|
11
|
-
* Promise indicating the gRPC stream is connected.
|
|
12
|
-
*
|
|
13
|
-
* Can be used in instances where the provider being connected to the event stream is a prerequisite
|
|
14
|
-
* to execution (e.g. testing). Not necessary for standard usage.
|
|
15
|
-
*
|
|
16
|
-
* @returns true if stream connected successfully, false if connection not enabled.
|
|
17
|
-
*/
|
|
18
|
-
get streamConnection(): Promise<boolean>;
|
|
19
|
-
constructor(options?: FlagdProviderOptions, service?: Service, logger?: Logger | undefined);
|
|
20
|
-
resolveBooleanEvaluation(flagKey: string, _: boolean, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<boolean>>;
|
|
21
|
-
resolveStringEvaluation(flagKey: string, _: string, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
|
|
22
|
-
resolveNumberEvaluation(flagKey: string, _: number, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<number>>;
|
|
23
|
-
resolveObjectEvaluation<T extends JsonValue>(flagKey: string, _: T, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
|
|
24
|
-
logRejected: (err: Error, flagKey: string, logger: Logger) => never;
|
|
25
|
-
}
|
|
1
|
+
import { EvaluationContext, JsonValue, Logger, Provider, ResolutionDetails } from '@openfeature/js-sdk';
|
|
2
|
+
import { FlagdProviderOptions } from './configuration';
|
|
3
|
+
import { Service } from './service/service';
|
|
4
|
+
export declare class FlagdProvider implements Provider {
|
|
5
|
+
private logger?;
|
|
6
|
+
metadata: {
|
|
7
|
+
name: string;
|
|
8
|
+
};
|
|
9
|
+
private readonly _service;
|
|
10
|
+
/**
|
|
11
|
+
* Promise indicating the gRPC stream is connected.
|
|
12
|
+
*
|
|
13
|
+
* Can be used in instances where the provider being connected to the event stream is a prerequisite
|
|
14
|
+
* to execution (e.g. testing). Not necessary for standard usage.
|
|
15
|
+
*
|
|
16
|
+
* @returns true if stream connected successfully, false if connection not enabled.
|
|
17
|
+
*/
|
|
18
|
+
get streamConnection(): Promise<boolean>;
|
|
19
|
+
constructor(options?: FlagdProviderOptions, service?: Service, logger?: Logger | undefined);
|
|
20
|
+
resolveBooleanEvaluation(flagKey: string, _: boolean, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<boolean>>;
|
|
21
|
+
resolveStringEvaluation(flagKey: string, _: string, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
|
|
22
|
+
resolveNumberEvaluation(flagKey: string, _: number, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<number>>;
|
|
23
|
+
resolveObjectEvaluation<T extends JsonValue>(flagKey: string, _: T, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
|
|
24
|
+
logRejected: (err: Error, flagKey: string, logger: Logger) => never;
|
|
25
|
+
}
|
|
@@ -1,47 +1,50 @@
|
|
|
1
|
-
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/js-sdk';
|
|
2
|
-
import { ServiceClient } from '../../../proto/ts/schema/v1/schema.client';
|
|
3
|
-
import { Config } from '../../configuration';
|
|
4
|
-
import { Service } from '../service';
|
|
5
|
-
interface FlagChange {
|
|
6
|
-
type: 'delete' | 'write' | 'update';
|
|
7
|
-
source: string;
|
|
8
|
-
flagKey: string;
|
|
9
|
-
}
|
|
10
|
-
export interface FlagChangeMessage {
|
|
11
|
-
flags?: {
|
|
12
|
-
[key: string]: FlagChange;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare const Codes: {
|
|
16
|
-
readonly InvalidArgument: "INVALID_ARGUMENT";
|
|
17
|
-
readonly NotFound: "NOT_FOUND";
|
|
18
|
-
readonly DataLoss: "DATA_LOSS";
|
|
19
|
-
readonly Unavailable: "UNAVAILABLE";
|
|
20
|
-
};
|
|
21
|
-
export declare class GRPCService implements Service {
|
|
22
|
-
private logger?;
|
|
23
|
-
private _client;
|
|
24
|
-
private _cache;
|
|
25
|
-
private _cacheEnabled;
|
|
26
|
-
private _streamAlive;
|
|
27
|
-
private _streamConnectAttempt;
|
|
28
|
-
private _streamConnectBackoff;
|
|
29
|
-
private _maxEventStreamRetries;
|
|
30
|
-
private get _cacheActive();
|
|
31
|
-
readonly streamConnection: Promise<boolean>;
|
|
32
|
-
constructor(config: Config, client?: ServiceClient, logger?: Logger | undefined);
|
|
33
|
-
resolveBoolean(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<boolean>>;
|
|
34
|
-
resolveString(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
|
|
35
|
-
resolveNumber(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<number>>;
|
|
36
|
-
resolveObject<T extends JsonValue>(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
|
|
37
|
-
private connectStream;
|
|
38
|
-
private handleProviderReady;
|
|
39
|
-
private handleFlagsChanged;
|
|
40
|
-
private handleError;
|
|
41
|
-
private handleComplete;
|
|
42
|
-
private objectParser;
|
|
43
|
-
private
|
|
44
|
-
private
|
|
45
|
-
private
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/js-sdk';
|
|
2
|
+
import { ServiceClient } from '../../../proto/ts/schema/v1/schema.client';
|
|
3
|
+
import { Config } from '../../configuration';
|
|
4
|
+
import { Service } from '../service';
|
|
5
|
+
interface FlagChange {
|
|
6
|
+
type: 'delete' | 'write' | 'update';
|
|
7
|
+
source: string;
|
|
8
|
+
flagKey: string;
|
|
9
|
+
}
|
|
10
|
+
export interface FlagChangeMessage {
|
|
11
|
+
flags?: {
|
|
12
|
+
[key: string]: FlagChange;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare const Codes: {
|
|
16
|
+
readonly InvalidArgument: "INVALID_ARGUMENT";
|
|
17
|
+
readonly NotFound: "NOT_FOUND";
|
|
18
|
+
readonly DataLoss: "DATA_LOSS";
|
|
19
|
+
readonly Unavailable: "UNAVAILABLE";
|
|
20
|
+
};
|
|
21
|
+
export declare class GRPCService implements Service {
|
|
22
|
+
private logger?;
|
|
23
|
+
private _client;
|
|
24
|
+
private _cache;
|
|
25
|
+
private _cacheEnabled;
|
|
26
|
+
private _streamAlive;
|
|
27
|
+
private _streamConnectAttempt;
|
|
28
|
+
private _streamConnectBackoff;
|
|
29
|
+
private _maxEventStreamRetries;
|
|
30
|
+
private get _cacheActive();
|
|
31
|
+
readonly streamConnection: Promise<boolean>;
|
|
32
|
+
constructor(config: Config, client?: ServiceClient, logger?: Logger | undefined);
|
|
33
|
+
resolveBoolean(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<boolean>>;
|
|
34
|
+
resolveString(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
|
|
35
|
+
resolveNumber(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<number>>;
|
|
36
|
+
resolveObject<T extends JsonValue>(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
|
|
37
|
+
private connectStream;
|
|
38
|
+
private handleProviderReady;
|
|
39
|
+
private handleFlagsChanged;
|
|
40
|
+
private handleError;
|
|
41
|
+
private handleComplete;
|
|
42
|
+
private objectParser;
|
|
43
|
+
private booleanParser;
|
|
44
|
+
private stringParser;
|
|
45
|
+
private numberParser;
|
|
46
|
+
private resolve;
|
|
47
|
+
private convertContext;
|
|
48
|
+
private onRejected;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/js-sdk';
|
|
2
|
-
export interface Service {
|
|
3
|
-
readonly streamConnection: Promise<boolean>;
|
|
4
|
-
resolveBoolean(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<boolean>>;
|
|
5
|
-
resolveString(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
|
|
6
|
-
resolveNumber(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<number>>;
|
|
7
|
-
resolveObject<T extends JsonValue>(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
|
|
8
|
-
}
|
|
1
|
+
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/js-sdk';
|
|
2
|
+
export interface Service {
|
|
3
|
+
readonly streamConnection: Promise<boolean>;
|
|
4
|
+
resolveBoolean(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<boolean>>;
|
|
5
|
+
resolveString(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
|
|
6
|
+
resolveNumber(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<number>>;
|
|
7
|
+
resolveObject<T extends JsonValue>(flagKey: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
|
|
8
|
+
}
|
package/src/package.json
CHANGED