@openfeature/flagd-provider 0.13.1 → 0.13.2

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/package.json CHANGED
@@ -1,28 +1,29 @@
1
1
  {
2
2
  "name": "@openfeature/flagd-provider",
3
- "version": "0.13.1",
3
+ "version": "0.13.2",
4
+ "license": "Apache-2.0",
4
5
  "scripts": {
5
6
  "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
7
  "current-version": "echo $npm_package_version"
7
8
  },
8
9
  "peerDependencies": {
9
- "@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0",
10
- "@openfeature/server-sdk": "^1.13.0"
10
+ "@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0 || ~1.11.0 || ~1.12.0",
11
+ "@openfeature/server-sdk": "^1.17.0"
12
+ },
13
+ "dependencies": {
14
+ "lru-cache": "^11.0.0",
15
+ "@openfeature/flagd-core": "^1.0.0"
11
16
  },
12
17
  "exports": {
13
18
  "./package.json": "./package.json",
14
19
  ".": {
15
20
  "module": "./index.esm.js",
21
+ "types": "./index.esm.d.ts",
16
22
  "import": "./index.cjs.mjs",
17
23
  "default": "./index.cjs.js"
18
24
  }
19
25
  },
20
26
  "module": "./index.esm.js",
21
27
  "main": "./index.cjs.js",
22
- "dependencies": {
23
- "@openfeature/flagd-core": "0.2.3",
24
- "@protobuf-ts/runtime-rpc": "2.9.4",
25
- "lru-cache": "10.2.2",
26
- "util": "0.12.5"
27
- }
28
- }
28
+ "types": "./index.esm.d.ts"
29
+ }
@@ -1,4 +1,4 @@
1
- import { EvaluationContext, JsonValue, Logger, OpenFeatureEventEmitter, Provider, ProviderStatus, ResolutionDetails } from '@openfeature/server-sdk';
1
+ import { EvaluationContext, JsonValue, Logger, OpenFeatureEventEmitter, Provider, ResolutionDetails } from '@openfeature/server-sdk';
2
2
  import { FlagdProviderOptions } from './configuration';
3
3
  import { Service } from './service/service';
4
4
  export declare class FlagdProvider implements Provider {
@@ -7,11 +7,8 @@ export declare class FlagdProvider implements Provider {
7
7
  name: string;
8
8
  };
9
9
  readonly runsOn = "server";
10
- get status(): ProviderStatus;
11
- get events(): OpenFeatureEventEmitter;
10
+ readonly events: OpenFeatureEventEmitter;
12
11
  private readonly _service;
13
- private _status;
14
- private _events;
15
12
  /**
16
13
  * Construct a new flagd provider.
17
14
  *
@@ -26,7 +23,6 @@ export declare class FlagdProvider implements Provider {
26
23
  resolveStringEvaluation(flagKey: string, defaultValue: string, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
27
24
  resolveNumberEvaluation(flagKey: string, defaultValue: number, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<number>>;
28
25
  resolveObjectEvaluation<T extends JsonValue>(flagKey: string, defaultValue: T, transformedContext: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
29
- logRejected: (err: Error, flagKey: string, logger: Logger) => never;
30
26
  private handleReconnect;
31
27
  private handleError;
32
28
  private handleChanged;
@@ -1,4 +1,4 @@
1
- import { Logger } from '@openfeature/core';
1
+ import { Logger } from '@openfeature/server-sdk';
2
2
  import { DataFetch } from '../data-fetch';
3
3
  export declare class FileFetch implements DataFetch {
4
4
  private _filename;
@@ -1,4 +1,4 @@
1
- import { Logger } from '@openfeature/core';
1
+ import { Logger } from '@openfeature/server-sdk';
2
2
  import { FlagSyncServiceClient } from '../../../../proto/ts/flagd/sync/v1/sync';
3
3
  import { Config } from '../../../configuration';
4
4
  import { DataFetch } from '../data-fetch';
@@ -1,6 +1,6 @@
1
- import { Service } from '../service';
2
- import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/core';
1
+ import type { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/server-sdk';
3
2
  import { Config } from '../../configuration';
3
+ import { Service } from '../service';
4
4
  import { DataFetch } from './data-fetch';
5
5
  export declare class InProcessService implements Service {
6
6
  private readonly config;
@@ -14,10 +14,6 @@ export declare class InProcessService implements Service {
14
14
  resolveString(flagKey: string, defaultValue: string, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<string>>;
15
15
  resolveObject<T extends JsonValue>(flagKey: string, defaultValue: T, context: EvaluationContext, logger: Logger): Promise<ResolutionDetails<T>>;
16
16
  private evaluate;
17
- /**
18
- * Adds the flag metadata to the resolution details
19
- */
20
- private addFlagMetadata;
21
17
  /**
22
18
  * Sets the flag configuration
23
19
  * @param flags The flags to set as stringified JSON
@@ -38,6 +38,10 @@ export interface AnyFlag {
38
38
  objectValue?: {
39
39
  [key: string]: any;
40
40
  } | undefined;
41
+ /** Metadata about this flag, see https://openfeature.dev/specification/types/#flag-metadata */
42
+ metadata: {
43
+ [key: string]: any;
44
+ } | undefined;
41
45
  }
42
46
  /** Request body for boolean flag evaluation, used by the ResolveBoolean rpc. */
43
47
  export interface ResolveBooleanRequest {
@@ -305,63 +309,63 @@ export declare const ServiceService: {
305
309
  readonly path: "/flagd.evaluation.v1.Service/ResolveAll";
306
310
  readonly requestStream: false;
307
311
  readonly responseStream: false;
308
- readonly requestSerialize: (value: ResolveAllRequest) => Buffer;
312
+ readonly requestSerialize: (value: ResolveAllRequest) => Buffer<ArrayBuffer>;
309
313
  readonly requestDeserialize: (value: Buffer) => ResolveAllRequest;
310
- readonly responseSerialize: (value: ResolveAllResponse) => Buffer;
314
+ readonly responseSerialize: (value: ResolveAllResponse) => Buffer<ArrayBuffer>;
311
315
  readonly responseDeserialize: (value: Buffer) => ResolveAllResponse;
312
316
  };
313
317
  readonly resolveBoolean: {
314
318
  readonly path: "/flagd.evaluation.v1.Service/ResolveBoolean";
315
319
  readonly requestStream: false;
316
320
  readonly responseStream: false;
317
- readonly requestSerialize: (value: ResolveBooleanRequest) => Buffer;
321
+ readonly requestSerialize: (value: ResolveBooleanRequest) => Buffer<ArrayBuffer>;
318
322
  readonly requestDeserialize: (value: Buffer) => ResolveBooleanRequest;
319
- readonly responseSerialize: (value: ResolveBooleanResponse) => Buffer;
323
+ readonly responseSerialize: (value: ResolveBooleanResponse) => Buffer<ArrayBuffer>;
320
324
  readonly responseDeserialize: (value: Buffer) => ResolveBooleanResponse;
321
325
  };
322
326
  readonly resolveString: {
323
327
  readonly path: "/flagd.evaluation.v1.Service/ResolveString";
324
328
  readonly requestStream: false;
325
329
  readonly responseStream: false;
326
- readonly requestSerialize: (value: ResolveStringRequest) => Buffer;
330
+ readonly requestSerialize: (value: ResolveStringRequest) => Buffer<ArrayBuffer>;
327
331
  readonly requestDeserialize: (value: Buffer) => ResolveStringRequest;
328
- readonly responseSerialize: (value: ResolveStringResponse) => Buffer;
332
+ readonly responseSerialize: (value: ResolveStringResponse) => Buffer<ArrayBuffer>;
329
333
  readonly responseDeserialize: (value: Buffer) => ResolveStringResponse;
330
334
  };
331
335
  readonly resolveFloat: {
332
336
  readonly path: "/flagd.evaluation.v1.Service/ResolveFloat";
333
337
  readonly requestStream: false;
334
338
  readonly responseStream: false;
335
- readonly requestSerialize: (value: ResolveFloatRequest) => Buffer;
339
+ readonly requestSerialize: (value: ResolveFloatRequest) => Buffer<ArrayBuffer>;
336
340
  readonly requestDeserialize: (value: Buffer) => ResolveFloatRequest;
337
- readonly responseSerialize: (value: ResolveFloatResponse) => Buffer;
341
+ readonly responseSerialize: (value: ResolveFloatResponse) => Buffer<ArrayBuffer>;
338
342
  readonly responseDeserialize: (value: Buffer) => ResolveFloatResponse;
339
343
  };
340
344
  readonly resolveInt: {
341
345
  readonly path: "/flagd.evaluation.v1.Service/ResolveInt";
342
346
  readonly requestStream: false;
343
347
  readonly responseStream: false;
344
- readonly requestSerialize: (value: ResolveIntRequest) => Buffer;
348
+ readonly requestSerialize: (value: ResolveIntRequest) => Buffer<ArrayBuffer>;
345
349
  readonly requestDeserialize: (value: Buffer) => ResolveIntRequest;
346
- readonly responseSerialize: (value: ResolveIntResponse) => Buffer;
350
+ readonly responseSerialize: (value: ResolveIntResponse) => Buffer<ArrayBuffer>;
347
351
  readonly responseDeserialize: (value: Buffer) => ResolveIntResponse;
348
352
  };
349
353
  readonly resolveObject: {
350
354
  readonly path: "/flagd.evaluation.v1.Service/ResolveObject";
351
355
  readonly requestStream: false;
352
356
  readonly responseStream: false;
353
- readonly requestSerialize: (value: ResolveObjectRequest) => Buffer;
357
+ readonly requestSerialize: (value: ResolveObjectRequest) => Buffer<ArrayBuffer>;
354
358
  readonly requestDeserialize: (value: Buffer) => ResolveObjectRequest;
355
- readonly responseSerialize: (value: ResolveObjectResponse) => Buffer;
359
+ readonly responseSerialize: (value: ResolveObjectResponse) => Buffer<ArrayBuffer>;
356
360
  readonly responseDeserialize: (value: Buffer) => ResolveObjectResponse;
357
361
  };
358
362
  readonly eventStream: {
359
363
  readonly path: "/flagd.evaluation.v1.Service/EventStream";
360
364
  readonly requestStream: false;
361
365
  readonly responseStream: true;
362
- readonly requestSerialize: (value: EventStreamRequest) => Buffer;
366
+ readonly requestSerialize: (value: EventStreamRequest) => Buffer<ArrayBuffer>;
363
367
  readonly requestDeserialize: (value: Buffer) => EventStreamRequest;
364
- readonly responseSerialize: (value: EventStreamResponse) => Buffer;
368
+ readonly responseSerialize: (value: EventStreamResponse) => Buffer<ArrayBuffer>;
365
369
  readonly responseDeserialize: (value: Buffer) => EventStreamResponse;
366
370
  };
367
371
  };
@@ -120,27 +120,27 @@ export declare const FlagSyncServiceService: {
120
120
  readonly path: "/flagd.sync.v1.FlagSyncService/SyncFlags";
121
121
  readonly requestStream: false;
122
122
  readonly responseStream: true;
123
- readonly requestSerialize: (value: SyncFlagsRequest) => Buffer;
123
+ readonly requestSerialize: (value: SyncFlagsRequest) => Buffer<ArrayBuffer>;
124
124
  readonly requestDeserialize: (value: Buffer) => SyncFlagsRequest;
125
- readonly responseSerialize: (value: SyncFlagsResponse) => Buffer;
125
+ readonly responseSerialize: (value: SyncFlagsResponse) => Buffer<ArrayBuffer>;
126
126
  readonly responseDeserialize: (value: Buffer) => SyncFlagsResponse;
127
127
  };
128
128
  readonly fetchAllFlags: {
129
129
  readonly path: "/flagd.sync.v1.FlagSyncService/FetchAllFlags";
130
130
  readonly requestStream: false;
131
131
  readonly responseStream: false;
132
- readonly requestSerialize: (value: FetchAllFlagsRequest) => Buffer;
132
+ readonly requestSerialize: (value: FetchAllFlagsRequest) => Buffer<ArrayBuffer>;
133
133
  readonly requestDeserialize: (value: Buffer) => FetchAllFlagsRequest;
134
- readonly responseSerialize: (value: FetchAllFlagsResponse) => Buffer;
134
+ readonly responseSerialize: (value: FetchAllFlagsResponse) => Buffer<ArrayBuffer>;
135
135
  readonly responseDeserialize: (value: Buffer) => FetchAllFlagsResponse;
136
136
  };
137
137
  readonly getMetadata: {
138
138
  readonly path: "/flagd.sync.v1.FlagSyncService/GetMetadata";
139
139
  readonly requestStream: false;
140
140
  readonly responseStream: false;
141
- readonly requestSerialize: (value: GetMetadataRequest) => Buffer;
141
+ readonly requestSerialize: (value: GetMetadataRequest) => Buffer<ArrayBuffer>;
142
142
  readonly requestDeserialize: (value: Buffer) => GetMetadataRequest;
143
- readonly responseSerialize: (value: GetMetadataResponse) => Buffer;
143
+ readonly responseSerialize: (value: GetMetadataResponse) => Buffer<ArrayBuffer>;
144
144
  readonly responseDeserialize: (value: Buffer) => GetMetadataResponse;
145
145
  };
146
146
  };
@@ -2,11 +2,14 @@ import { CallOptions, ChannelCredentials, Client, ClientOptions, ClientReadableS
2
2
  import _m0 from "protobufjs/minimal";
3
3
  export declare const protobufPackage = "schema.v1";
4
4
  /**
5
+ * DEPRECATED; use flagd.evaluation.v1
5
6
  * Flag evaluation API
6
7
  *
7
8
  * This proto forms the basis of a flag-evaluation API.
8
9
  * It supports single and bulk evaluation RPCs, and flags of various types, as well as establishing a stream for getting notifications about changes in a flag definition.
9
10
  * It supports the inclusion of a "context" with each evaluation, which may contain arbitrary attributes relevant to flag evaluation.
11
+ *
12
+ * @deprecated
10
13
  */
11
14
  /** Request body for bulk flag evaluation, used by the ResolveAll rpc. */
12
15
  export interface ResolveAllRequest {
@@ -305,63 +308,63 @@ export declare const ServiceService: {
305
308
  readonly path: "/schema.v1.Service/ResolveAll";
306
309
  readonly requestStream: false;
307
310
  readonly responseStream: false;
308
- readonly requestSerialize: (value: ResolveAllRequest) => Buffer;
311
+ readonly requestSerialize: (value: ResolveAllRequest) => Buffer<ArrayBuffer>;
309
312
  readonly requestDeserialize: (value: Buffer) => ResolveAllRequest;
310
- readonly responseSerialize: (value: ResolveAllResponse) => Buffer;
313
+ readonly responseSerialize: (value: ResolveAllResponse) => Buffer<ArrayBuffer>;
311
314
  readonly responseDeserialize: (value: Buffer) => ResolveAllResponse;
312
315
  };
313
316
  readonly resolveBoolean: {
314
317
  readonly path: "/schema.v1.Service/ResolveBoolean";
315
318
  readonly requestStream: false;
316
319
  readonly responseStream: false;
317
- readonly requestSerialize: (value: ResolveBooleanRequest) => Buffer;
320
+ readonly requestSerialize: (value: ResolveBooleanRequest) => Buffer<ArrayBuffer>;
318
321
  readonly requestDeserialize: (value: Buffer) => ResolveBooleanRequest;
319
- readonly responseSerialize: (value: ResolveBooleanResponse) => Buffer;
322
+ readonly responseSerialize: (value: ResolveBooleanResponse) => Buffer<ArrayBuffer>;
320
323
  readonly responseDeserialize: (value: Buffer) => ResolveBooleanResponse;
321
324
  };
322
325
  readonly resolveString: {
323
326
  readonly path: "/schema.v1.Service/ResolveString";
324
327
  readonly requestStream: false;
325
328
  readonly responseStream: false;
326
- readonly requestSerialize: (value: ResolveStringRequest) => Buffer;
329
+ readonly requestSerialize: (value: ResolveStringRequest) => Buffer<ArrayBuffer>;
327
330
  readonly requestDeserialize: (value: Buffer) => ResolveStringRequest;
328
- readonly responseSerialize: (value: ResolveStringResponse) => Buffer;
331
+ readonly responseSerialize: (value: ResolveStringResponse) => Buffer<ArrayBuffer>;
329
332
  readonly responseDeserialize: (value: Buffer) => ResolveStringResponse;
330
333
  };
331
334
  readonly resolveFloat: {
332
335
  readonly path: "/schema.v1.Service/ResolveFloat";
333
336
  readonly requestStream: false;
334
337
  readonly responseStream: false;
335
- readonly requestSerialize: (value: ResolveFloatRequest) => Buffer;
338
+ readonly requestSerialize: (value: ResolveFloatRequest) => Buffer<ArrayBuffer>;
336
339
  readonly requestDeserialize: (value: Buffer) => ResolveFloatRequest;
337
- readonly responseSerialize: (value: ResolveFloatResponse) => Buffer;
340
+ readonly responseSerialize: (value: ResolveFloatResponse) => Buffer<ArrayBuffer>;
338
341
  readonly responseDeserialize: (value: Buffer) => ResolveFloatResponse;
339
342
  };
340
343
  readonly resolveInt: {
341
344
  readonly path: "/schema.v1.Service/ResolveInt";
342
345
  readonly requestStream: false;
343
346
  readonly responseStream: false;
344
- readonly requestSerialize: (value: ResolveIntRequest) => Buffer;
347
+ readonly requestSerialize: (value: ResolveIntRequest) => Buffer<ArrayBuffer>;
345
348
  readonly requestDeserialize: (value: Buffer) => ResolveIntRequest;
346
- readonly responseSerialize: (value: ResolveIntResponse) => Buffer;
349
+ readonly responseSerialize: (value: ResolveIntResponse) => Buffer<ArrayBuffer>;
347
350
  readonly responseDeserialize: (value: Buffer) => ResolveIntResponse;
348
351
  };
349
352
  readonly resolveObject: {
350
353
  readonly path: "/schema.v1.Service/ResolveObject";
351
354
  readonly requestStream: false;
352
355
  readonly responseStream: false;
353
- readonly requestSerialize: (value: ResolveObjectRequest) => Buffer;
356
+ readonly requestSerialize: (value: ResolveObjectRequest) => Buffer<ArrayBuffer>;
354
357
  readonly requestDeserialize: (value: Buffer) => ResolveObjectRequest;
355
- readonly responseSerialize: (value: ResolveObjectResponse) => Buffer;
358
+ readonly responseSerialize: (value: ResolveObjectResponse) => Buffer<ArrayBuffer>;
356
359
  readonly responseDeserialize: (value: Buffer) => ResolveObjectResponse;
357
360
  };
358
361
  readonly eventStream: {
359
362
  readonly path: "/schema.v1.Service/EventStream";
360
363
  readonly requestStream: false;
361
364
  readonly responseStream: true;
362
- readonly requestSerialize: (value: EventStreamRequest) => Buffer;
365
+ readonly requestSerialize: (value: EventStreamRequest) => Buffer<ArrayBuffer>;
363
366
  readonly requestDeserialize: (value: Buffer) => EventStreamRequest;
364
- readonly responseSerialize: (value: EventStreamResponse) => Buffer;
367
+ readonly responseSerialize: (value: EventStreamResponse) => Buffer<ArrayBuffer>;
365
368
  readonly responseDeserialize: (value: Buffer) => EventStreamResponse;
366
369
  };
367
370
  };
@@ -2,10 +2,13 @@ import { CallOptions, ChannelCredentials, Client, ClientOptions, ClientReadableS
2
2
  import _m0 from "protobufjs/minimal";
3
3
  export declare const protobufPackage = "sync.v1";
4
4
  /**
5
+ * DEPRECATED; use flagd.sync.v1
5
6
  * Flag definition sync API
6
7
  *
7
8
  * This proto defines a simple API to synchronize a feature flag definition.
8
9
  * It supports establishing a stream for getting notifications about changes in a flag definition.
10
+ *
11
+ * @deprecated
9
12
  */
10
13
  /**
11
14
  * SyncState conveys the state of the payload. These states are related to flagd isync.go type definitions but
@@ -124,18 +127,18 @@ export declare const FlagSyncServiceService: {
124
127
  readonly path: "/sync.v1.FlagSyncService/SyncFlags";
125
128
  readonly requestStream: false;
126
129
  readonly responseStream: true;
127
- readonly requestSerialize: (value: SyncFlagsRequest) => Buffer;
130
+ readonly requestSerialize: (value: SyncFlagsRequest) => Buffer<ArrayBuffer>;
128
131
  readonly requestDeserialize: (value: Buffer) => SyncFlagsRequest;
129
- readonly responseSerialize: (value: SyncFlagsResponse) => Buffer;
132
+ readonly responseSerialize: (value: SyncFlagsResponse) => Buffer<ArrayBuffer>;
130
133
  readonly responseDeserialize: (value: Buffer) => SyncFlagsResponse;
131
134
  };
132
135
  readonly fetchAllFlags: {
133
136
  readonly path: "/sync.v1.FlagSyncService/FetchAllFlags";
134
137
  readonly requestStream: false;
135
138
  readonly responseStream: false;
136
- readonly requestSerialize: (value: FetchAllFlagsRequest) => Buffer;
139
+ readonly requestSerialize: (value: FetchAllFlagsRequest) => Buffer<ArrayBuffer>;
137
140
  readonly requestDeserialize: (value: Buffer) => FetchAllFlagsRequest;
138
- readonly responseSerialize: (value: FetchAllFlagsResponse) => Buffer;
141
+ readonly responseSerialize: (value: FetchAllFlagsResponse) => Buffer<ArrayBuffer>;
139
142
  readonly responseDeserialize: (value: Buffer) => FetchAllFlagsResponse;
140
143
  };
141
144
  };
@@ -1,4 +0,0 @@
1
- export declare const FLAGD_NAME = "flagd Provider";
2
- export declare const E2E_CLIENT_NAME = "e2e";
3
- export declare const UNSTABLE_CLIENT_NAME = "unstable";
4
- export declare const UNAVAILABLE_CLIENT_NAME = "unavailable";
@@ -1,11 +0,0 @@
1
- declare const _default: {
2
- displayName: string;
3
- clearMocks: boolean;
4
- preset: string;
5
- verbose: boolean;
6
- silent: boolean;
7
- moduleNameMapper: {
8
- '@openfeature/flagd-core': string[];
9
- };
10
- };
11
- export default _default;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};