@openfeature/flagd-provider 0.8.3 → 0.9.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 +1 -1
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/{index.cjs → index.cjs.js} +32 -51
- package/index.cjs.mjs +2 -0
- package/{index.js → index.esm.js} +18 -37
- package/package.json +10 -10
- package/src/e2e/jest.config.d.ts +9 -0
- package/src/e2e/setup.d.ts +1 -0
- package/src/lib/flagd-provider.d.ts +2 -1
- package/src/lib/service/grpc/grpc-service.d.ts +1 -5
- package/src/lib/service/service.d.ts +1 -1
- package/src/proto/ts/schema/v1/schema.d.ts +7 -0
- package/src/proto/ts/sync/v1/sync_service.d.ts +6 -0
package/README.md
CHANGED
package/index.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./index.cjs.js').default;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var serverSdk = require('@openfeature/server-sdk');
|
|
6
6
|
var grpcJs = require('@grpc/grpc-js');
|
|
7
7
|
var lruCache = require('lru-cache');
|
|
8
8
|
var util$6 = require('util');
|
|
@@ -2682,7 +2682,7 @@ function newError(name) {
|
|
|
2682
2682
|
configurable: true,
|
|
2683
2683
|
},
|
|
2684
2684
|
name: {
|
|
2685
|
-
get() { return name; },
|
|
2685
|
+
get: function get() { return name; },
|
|
2686
2686
|
set: undefined,
|
|
2687
2687
|
enumerable: false,
|
|
2688
2688
|
// configurable: false would accurately preserve the behavior of
|
|
@@ -2692,7 +2692,7 @@ function newError(name) {
|
|
|
2692
2692
|
configurable: true,
|
|
2693
2693
|
},
|
|
2694
2694
|
toString: {
|
|
2695
|
-
value() { return this.name + ": " + this.message; },
|
|
2695
|
+
value: function value() { return this.name + ": " + this.message; },
|
|
2696
2696
|
writable: true,
|
|
2697
2697
|
enumerable: false,
|
|
2698
2698
|
configurable: true,
|
|
@@ -3695,9 +3695,14 @@ Reader$1.prototype.bytes = function read_bytes() {
|
|
|
3695
3695
|
this.pos += length;
|
|
3696
3696
|
if (Array.isArray(this.buf)) // plain array
|
|
3697
3697
|
return this.buf.slice(start, end);
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3698
|
+
|
|
3699
|
+
if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1
|
|
3700
|
+
var nativeBuffer = util$2.Buffer;
|
|
3701
|
+
return nativeBuffer
|
|
3702
|
+
? nativeBuffer.alloc(0)
|
|
3703
|
+
: new this.buf.constructor(0);
|
|
3704
|
+
}
|
|
3705
|
+
return this._slice.call(this.buf, start, end);
|
|
3701
3706
|
};
|
|
3702
3707
|
|
|
3703
3708
|
/**
|
|
@@ -5833,43 +5838,19 @@ class GRPCService {
|
|
|
5833
5838
|
this._streamConnectAttempt = 0;
|
|
5834
5839
|
this._stream = undefined;
|
|
5835
5840
|
this._streamConnectBackoff = BASE_EVENT_STREAM_RETRY_BACKOFF_MS;
|
|
5836
|
-
this.objectParser = (struct) => {
|
|
5837
|
-
if (struct) {
|
|
5838
|
-
return struct;
|
|
5839
|
-
}
|
|
5840
|
-
return {};
|
|
5841
|
-
};
|
|
5842
|
-
this.booleanParser = (value) => {
|
|
5843
|
-
if (value) {
|
|
5844
|
-
return value;
|
|
5845
|
-
}
|
|
5846
|
-
return false;
|
|
5847
|
-
};
|
|
5848
|
-
this.stringParser = (value) => {
|
|
5849
|
-
if (value) {
|
|
5850
|
-
return value;
|
|
5851
|
-
}
|
|
5852
|
-
return '';
|
|
5853
|
-
};
|
|
5854
|
-
this.numberParser = (value) => {
|
|
5855
|
-
if (value) {
|
|
5856
|
-
return value;
|
|
5857
|
-
}
|
|
5858
|
-
return 0;
|
|
5859
|
-
};
|
|
5860
5841
|
this.onRejected = (err) => {
|
|
5861
5842
|
// map the errors
|
|
5862
5843
|
switch (err === null || err === void 0 ? void 0 : err.code) {
|
|
5863
5844
|
case grpcJs.status.DATA_LOSS:
|
|
5864
|
-
throw new
|
|
5845
|
+
throw new serverSdk.ParseError(err.details);
|
|
5865
5846
|
case grpcJs.status.INVALID_ARGUMENT:
|
|
5866
|
-
throw new
|
|
5847
|
+
throw new serverSdk.TypeMismatchError(err.details);
|
|
5867
5848
|
case grpcJs.status.NOT_FOUND:
|
|
5868
|
-
throw new
|
|
5849
|
+
throw new serverSdk.FlagNotFoundError(err.details);
|
|
5869
5850
|
case grpcJs.status.UNAVAILABLE:
|
|
5870
|
-
throw new
|
|
5851
|
+
throw new serverSdk.FlagNotFoundError(err.details);
|
|
5871
5852
|
default:
|
|
5872
|
-
throw new
|
|
5853
|
+
throw new serverSdk.GeneralError(err === null || err === void 0 ? void 0 : err.details);
|
|
5873
5854
|
}
|
|
5874
5855
|
};
|
|
5875
5856
|
const { host, port, tls, socketPath } = config;
|
|
@@ -5895,22 +5876,22 @@ class GRPCService {
|
|
|
5895
5876
|
}
|
|
5896
5877
|
resolveBoolean(flagKey, context, logger) {
|
|
5897
5878
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5898
|
-
return this.resolve(this._client.resolveBoolean, flagKey, context, logger
|
|
5879
|
+
return this.resolve(this._client.resolveBoolean, flagKey, context, logger);
|
|
5899
5880
|
});
|
|
5900
5881
|
}
|
|
5901
5882
|
resolveString(flagKey, context, logger) {
|
|
5902
5883
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5903
|
-
return this.resolve(this._client.resolveString, flagKey, context, logger
|
|
5884
|
+
return this.resolve(this._client.resolveString, flagKey, context, logger);
|
|
5904
5885
|
});
|
|
5905
5886
|
}
|
|
5906
5887
|
resolveNumber(flagKey, context, logger) {
|
|
5907
5888
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5908
|
-
return this.resolve(this._client.resolveFloat, flagKey, context, logger
|
|
5889
|
+
return this.resolve(this._client.resolveFloat, flagKey, context, logger);
|
|
5909
5890
|
});
|
|
5910
5891
|
}
|
|
5911
5892
|
resolveObject(flagKey, context, logger) {
|
|
5912
5893
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5913
|
-
return this.resolve(this._client.resolveObject, flagKey, context, logger
|
|
5894
|
+
return this.resolve(this._client.resolveObject, flagKey, context, logger);
|
|
5914
5895
|
});
|
|
5915
5896
|
}
|
|
5916
5897
|
connectStream(connectCallback, changedCallback, disconnectCallback) {
|
|
@@ -5998,14 +5979,14 @@ class GRPCService {
|
|
|
5998
5979
|
(_b = this._cache) === null || _b === void 0 ? void 0 : _b.clear();
|
|
5999
5980
|
this._streamAlive = false;
|
|
6000
5981
|
}
|
|
6001
|
-
resolve(promise, flagKey, context, logger
|
|
5982
|
+
resolve(promise, flagKey, context, logger) {
|
|
6002
5983
|
var _a, _b;
|
|
6003
5984
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6004
5985
|
const resolver = util$6.promisify(promise);
|
|
6005
5986
|
if (this._cacheActive) {
|
|
6006
5987
|
const cached = (_a = this._cache) === null || _a === void 0 ? void 0 : _a.get(flagKey);
|
|
6007
5988
|
if (cached) {
|
|
6008
|
-
return Object.assign(Object.assign({}, cached), { reason:
|
|
5989
|
+
return Object.assign(Object.assign({}, cached), { reason: serverSdk.StandardResolutionReasons.CACHED });
|
|
6009
5990
|
}
|
|
6010
5991
|
}
|
|
6011
5992
|
// invoke the passed resolver method
|
|
@@ -6013,14 +5994,13 @@ class GRPCService {
|
|
|
6013
5994
|
.call(this._client, { flagKey, context })
|
|
6014
5995
|
.then((resolved) => resolved, this.onRejected);
|
|
6015
5996
|
const resolved = {
|
|
6016
|
-
|
|
6017
|
-
value: parser.call(this, response.value),
|
|
5997
|
+
value: response.value,
|
|
6018
5998
|
reason: response.reason,
|
|
6019
5999
|
variant: response.variant,
|
|
6020
6000
|
flagMetadata: response.metadata,
|
|
6021
6001
|
};
|
|
6022
6002
|
logger.debug(`${FlagdProvider.name}: resolved flag with key: ${resolved.value}, variant: ${response.variant}, reason: ${response.reason}`);
|
|
6023
|
-
if (this._cacheActive && response.reason ===
|
|
6003
|
+
if (this._cacheActive && response.reason === serverSdk.StandardResolutionReasons.STATIC) {
|
|
6024
6004
|
// cache this static value
|
|
6025
6005
|
(_b = this._cache) === null || _b === void 0 ? void 0 : _b.set(flagKey, resolved);
|
|
6026
6006
|
}
|
|
@@ -6048,8 +6028,9 @@ class FlagdProvider {
|
|
|
6048
6028
|
this.metadata = {
|
|
6049
6029
|
name: 'flagd Provider',
|
|
6050
6030
|
};
|
|
6051
|
-
this.
|
|
6052
|
-
this.
|
|
6031
|
+
this.runsOn = 'server';
|
|
6032
|
+
this._status = serverSdk.ProviderStatus.NOT_READY;
|
|
6033
|
+
this._events = new serverSdk.OpenFeatureEventEmitter();
|
|
6053
6034
|
this.logRejected = (err, flagKey, logger) => {
|
|
6054
6035
|
logger.error(`Error resolving flag ${flagKey}: ${err === null || err === void 0 ? void 0 : err.message}`);
|
|
6055
6036
|
logger.error(err === null || err === void 0 ? void 0 : err.stack);
|
|
@@ -6063,11 +6044,11 @@ class FlagdProvider {
|
|
|
6063
6044
|
.then(() => {
|
|
6064
6045
|
var _a;
|
|
6065
6046
|
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug(`${this.metadata.name}: ready`);
|
|
6066
|
-
this._status =
|
|
6047
|
+
this._status = serverSdk.ProviderStatus.READY;
|
|
6067
6048
|
})
|
|
6068
6049
|
.catch((err) => {
|
|
6069
6050
|
var _a;
|
|
6070
|
-
this._status =
|
|
6051
|
+
this._status = serverSdk.ProviderStatus.ERROR;
|
|
6071
6052
|
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.error(`${this.metadata.name}: error during initialization: ${err.message}, ${err.stack}`);
|
|
6072
6053
|
throw err;
|
|
6073
6054
|
});
|
|
@@ -6098,13 +6079,13 @@ class FlagdProvider {
|
|
|
6098
6079
|
.catch((err) => this.logRejected(err, flagKey, logger));
|
|
6099
6080
|
}
|
|
6100
6081
|
setReady() {
|
|
6101
|
-
this._status =
|
|
6082
|
+
this._status = serverSdk.ProviderStatus.READY;
|
|
6102
6083
|
}
|
|
6103
6084
|
setError() {
|
|
6104
|
-
this._status =
|
|
6085
|
+
this._status = serverSdk.ProviderStatus.ERROR;
|
|
6105
6086
|
}
|
|
6106
6087
|
emitChanged(flagsChanged) {
|
|
6107
|
-
this._events.emit(
|
|
6088
|
+
this._events.emit(serverSdk.ProviderEvents.ConfigurationChanged, { flagsChanged });
|
|
6108
6089
|
}
|
|
6109
6090
|
}
|
|
6110
6091
|
|
package/index.cjs.mjs
ADDED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GeneralError, FlagNotFoundError, TypeMismatchError, ParseError, StandardResolutionReasons, ProviderStatus, OpenFeatureEventEmitter, ProviderEvents } from '@openfeature/
|
|
1
|
+
import { GeneralError, FlagNotFoundError, TypeMismatchError, ParseError, StandardResolutionReasons, ProviderStatus, OpenFeatureEventEmitter, ProviderEvents } from '@openfeature/server-sdk';
|
|
2
2
|
import { makeGenericClientConstructor, status, credentials } from '@grpc/grpc-js';
|
|
3
3
|
import { LRUCache } from 'lru-cache';
|
|
4
4
|
import { promisify } from 'util';
|
|
@@ -2678,7 +2678,7 @@ function newError(name) {
|
|
|
2678
2678
|
configurable: true,
|
|
2679
2679
|
},
|
|
2680
2680
|
name: {
|
|
2681
|
-
get() { return name; },
|
|
2681
|
+
get: function get() { return name; },
|
|
2682
2682
|
set: undefined,
|
|
2683
2683
|
enumerable: false,
|
|
2684
2684
|
// configurable: false would accurately preserve the behavior of
|
|
@@ -2688,7 +2688,7 @@ function newError(name) {
|
|
|
2688
2688
|
configurable: true,
|
|
2689
2689
|
},
|
|
2690
2690
|
toString: {
|
|
2691
|
-
value() { return this.name + ": " + this.message; },
|
|
2691
|
+
value: function value() { return this.name + ": " + this.message; },
|
|
2692
2692
|
writable: true,
|
|
2693
2693
|
enumerable: false,
|
|
2694
2694
|
configurable: true,
|
|
@@ -3691,9 +3691,14 @@ Reader$1.prototype.bytes = function read_bytes() {
|
|
|
3691
3691
|
this.pos += length;
|
|
3692
3692
|
if (Array.isArray(this.buf)) // plain array
|
|
3693
3693
|
return this.buf.slice(start, end);
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3694
|
+
|
|
3695
|
+
if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1
|
|
3696
|
+
var nativeBuffer = util$2.Buffer;
|
|
3697
|
+
return nativeBuffer
|
|
3698
|
+
? nativeBuffer.alloc(0)
|
|
3699
|
+
: new this.buf.constructor(0);
|
|
3700
|
+
}
|
|
3701
|
+
return this._slice.call(this.buf, start, end);
|
|
3697
3702
|
};
|
|
3698
3703
|
|
|
3699
3704
|
/**
|
|
@@ -5829,30 +5834,6 @@ class GRPCService {
|
|
|
5829
5834
|
this._streamConnectAttempt = 0;
|
|
5830
5835
|
this._stream = undefined;
|
|
5831
5836
|
this._streamConnectBackoff = BASE_EVENT_STREAM_RETRY_BACKOFF_MS;
|
|
5832
|
-
this.objectParser = (struct) => {
|
|
5833
|
-
if (struct) {
|
|
5834
|
-
return struct;
|
|
5835
|
-
}
|
|
5836
|
-
return {};
|
|
5837
|
-
};
|
|
5838
|
-
this.booleanParser = (value) => {
|
|
5839
|
-
if (value) {
|
|
5840
|
-
return value;
|
|
5841
|
-
}
|
|
5842
|
-
return false;
|
|
5843
|
-
};
|
|
5844
|
-
this.stringParser = (value) => {
|
|
5845
|
-
if (value) {
|
|
5846
|
-
return value;
|
|
5847
|
-
}
|
|
5848
|
-
return '';
|
|
5849
|
-
};
|
|
5850
|
-
this.numberParser = (value) => {
|
|
5851
|
-
if (value) {
|
|
5852
|
-
return value;
|
|
5853
|
-
}
|
|
5854
|
-
return 0;
|
|
5855
|
-
};
|
|
5856
5837
|
this.onRejected = (err) => {
|
|
5857
5838
|
// map the errors
|
|
5858
5839
|
switch (err === null || err === void 0 ? void 0 : err.code) {
|
|
@@ -5891,22 +5872,22 @@ class GRPCService {
|
|
|
5891
5872
|
}
|
|
5892
5873
|
resolveBoolean(flagKey, context, logger) {
|
|
5893
5874
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5894
|
-
return this.resolve(this._client.resolveBoolean, flagKey, context, logger
|
|
5875
|
+
return this.resolve(this._client.resolveBoolean, flagKey, context, logger);
|
|
5895
5876
|
});
|
|
5896
5877
|
}
|
|
5897
5878
|
resolveString(flagKey, context, logger) {
|
|
5898
5879
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5899
|
-
return this.resolve(this._client.resolveString, flagKey, context, logger
|
|
5880
|
+
return this.resolve(this._client.resolveString, flagKey, context, logger);
|
|
5900
5881
|
});
|
|
5901
5882
|
}
|
|
5902
5883
|
resolveNumber(flagKey, context, logger) {
|
|
5903
5884
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5904
|
-
return this.resolve(this._client.resolveFloat, flagKey, context, logger
|
|
5885
|
+
return this.resolve(this._client.resolveFloat, flagKey, context, logger);
|
|
5905
5886
|
});
|
|
5906
5887
|
}
|
|
5907
5888
|
resolveObject(flagKey, context, logger) {
|
|
5908
5889
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5909
|
-
return this.resolve(this._client.resolveObject, flagKey, context, logger
|
|
5890
|
+
return this.resolve(this._client.resolveObject, flagKey, context, logger);
|
|
5910
5891
|
});
|
|
5911
5892
|
}
|
|
5912
5893
|
connectStream(connectCallback, changedCallback, disconnectCallback) {
|
|
@@ -5994,7 +5975,7 @@ class GRPCService {
|
|
|
5994
5975
|
(_b = this._cache) === null || _b === void 0 ? void 0 : _b.clear();
|
|
5995
5976
|
this._streamAlive = false;
|
|
5996
5977
|
}
|
|
5997
|
-
resolve(promise, flagKey, context, logger
|
|
5978
|
+
resolve(promise, flagKey, context, logger) {
|
|
5998
5979
|
var _a, _b;
|
|
5999
5980
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6000
5981
|
const resolver = promisify(promise);
|
|
@@ -6009,8 +5990,7 @@ class GRPCService {
|
|
|
6009
5990
|
.call(this._client, { flagKey, context })
|
|
6010
5991
|
.then((resolved) => resolved, this.onRejected);
|
|
6011
5992
|
const resolved = {
|
|
6012
|
-
|
|
6013
|
-
value: parser.call(this, response.value),
|
|
5993
|
+
value: response.value,
|
|
6014
5994
|
reason: response.reason,
|
|
6015
5995
|
variant: response.variant,
|
|
6016
5996
|
flagMetadata: response.metadata,
|
|
@@ -6044,6 +6024,7 @@ class FlagdProvider {
|
|
|
6044
6024
|
this.metadata = {
|
|
6045
6025
|
name: 'flagd Provider',
|
|
6046
6026
|
};
|
|
6027
|
+
this.runsOn = 'server';
|
|
6047
6028
|
this._status = ProviderStatus.NOT_READY;
|
|
6048
6029
|
this._events = new OpenFeatureEventEmitter();
|
|
6049
6030
|
this.logRejected = (err, flagKey, logger) => {
|
package/package.json
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfeature/flagd-provider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
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
9
|
"@grpc/grpc-js": "^1.6.0",
|
|
10
|
-
"@openfeature/
|
|
10
|
+
"@openfeature/server-sdk": ">=1.6.0"
|
|
11
11
|
},
|
|
12
|
-
"module": "./index.js",
|
|
13
|
-
"main": "./index.cjs",
|
|
14
|
-
"type": "module",
|
|
15
|
-
"types": "./src/index.d.ts",
|
|
16
12
|
"exports": {
|
|
13
|
+
"./package.json": "./package.json",
|
|
17
14
|
".": {
|
|
18
|
-
"
|
|
19
|
-
"import": "./index.
|
|
20
|
-
"
|
|
15
|
+
"module": "./index.esm.js",
|
|
16
|
+
"import": "./index.cjs.mjs",
|
|
17
|
+
"default": "./index.cjs.js"
|
|
21
18
|
}
|
|
22
19
|
},
|
|
20
|
+
"module": "./index.esm.js",
|
|
21
|
+
"main": "./index.cjs.js",
|
|
23
22
|
"dependencies": {
|
|
24
23
|
"@protobuf-ts/runtime-rpc": "2.9.0",
|
|
25
|
-
"lru-cache": "10.0.
|
|
24
|
+
"lru-cache": "10.0.1",
|
|
25
|
+
"util": "0.12.5"
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EvaluationContext, JsonValue, Logger, OpenFeatureEventEmitter, Provider, ProviderStatus, ResolutionDetails } from '@openfeature/
|
|
1
|
+
import { EvaluationContext, JsonValue, Logger, OpenFeatureEventEmitter, Provider, ProviderStatus, 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 {
|
|
@@ -6,6 +6,7 @@ export declare class FlagdProvider implements Provider {
|
|
|
6
6
|
metadata: {
|
|
7
7
|
name: string;
|
|
8
8
|
};
|
|
9
|
+
readonly runsOn = "server";
|
|
9
10
|
get status(): ProviderStatus;
|
|
10
11
|
get events(): OpenFeatureEventEmitter;
|
|
11
12
|
private readonly _service;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/
|
|
1
|
+
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/server-sdk';
|
|
2
2
|
import { ServiceClient } from '../../../proto/ts/schema/v1/schema';
|
|
3
3
|
import { Config } from '../../configuration';
|
|
4
4
|
import { Service } from '../service';
|
|
@@ -41,10 +41,6 @@ export declare class GRPCService implements Service {
|
|
|
41
41
|
private handleFlagsChanged;
|
|
42
42
|
private handleError;
|
|
43
43
|
private handleClose;
|
|
44
|
-
private objectParser;
|
|
45
|
-
private booleanParser;
|
|
46
|
-
private stringParser;
|
|
47
|
-
private numberParser;
|
|
48
44
|
private resolve;
|
|
49
45
|
private onRejected;
|
|
50
46
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/
|
|
1
|
+
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/server-sdk';
|
|
2
2
|
export interface Service {
|
|
3
3
|
connect(reconnectCallback: () => void, changedCallback: (flagsChanged: string[]) => void, disconnectCallback: () => void): Promise<void>;
|
|
4
4
|
disconnect(): Promise<void>;
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
import { CallOptions, ChannelCredentials, Client, ClientOptions, ClientReadableStream, ClientUnaryCall, handleServerStreamingCall, handleUnaryCall, Metadata, ServiceError, UntypedServiceImplementation } from "@grpc/grpc-js";
|
|
3
3
|
import _m0 from "protobufjs/minimal";
|
|
4
4
|
export declare const protobufPackage = "schema.v1";
|
|
5
|
+
/**
|
|
6
|
+
* Flag evaluation API
|
|
7
|
+
*
|
|
8
|
+
* This proto forms the basis of a flag-evaluation API.
|
|
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.
|
|
10
|
+
* It supports the inclusion of a "context" with each evaluation, which may contain arbitraty attributes relevant to flag evaluation.
|
|
11
|
+
*/
|
|
5
12
|
/** Request body for bulk flag evaluation, used by the ResolveAll rpc. */
|
|
6
13
|
export interface ResolveAllRequest {
|
|
7
14
|
/** Object structure describing the EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context */
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
import { CallOptions, ChannelCredentials, Client, ClientOptions, ClientReadableStream, ClientUnaryCall, handleServerStreamingCall, handleUnaryCall, Metadata, ServiceError, UntypedServiceImplementation } from "@grpc/grpc-js";
|
|
3
3
|
import _m0 from "protobufjs/minimal";
|
|
4
4
|
export declare const protobufPackage = "sync.v1";
|
|
5
|
+
/**
|
|
6
|
+
* Flag definition sync API
|
|
7
|
+
*
|
|
8
|
+
* This proto defines a simple API to synchronize a feature flag definition.
|
|
9
|
+
* It supports establishing a stream for getting notifications about changes in a flag definition.
|
|
10
|
+
*/
|
|
5
11
|
/**
|
|
6
12
|
* SyncState conveys the state of the payload. These states are related to flagd isync.go type definitions but
|
|
7
13
|
* contains extras to optimize grpc use case. Refer - https://github.com/open-feature/flagd/blob/main/pkg/sync/isync.go
|