@openfeature/flagd-provider 0.10.5 → 0.11.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/index.cjs.js +214 -139
- package/index.esm.js +214 -139
- package/package.json +2 -2
- package/src/e2e/constants.d.ts +4 -0
- package/src/lib/service/grpc/grpc-service.d.ts +1 -1
- package/src/lib/service/in-process/grpc/grpc-fetch.d.ts +2 -1
package/index.cjs.js
CHANGED
|
@@ -5756,7 +5756,7 @@ const EventStreamRequest = {
|
|
|
5756
5756
|
};
|
|
5757
5757
|
const ServiceService = {
|
|
5758
5758
|
resolveAll: {
|
|
5759
|
-
path: "/
|
|
5759
|
+
path: "/flagd.evaluation.v1.Service/ResolveAll",
|
|
5760
5760
|
requestStream: false,
|
|
5761
5761
|
responseStream: false,
|
|
5762
5762
|
requestSerialize: (value) => Buffer.from(ResolveAllRequest.encode(value).finish()),
|
|
@@ -5765,7 +5765,7 @@ const ServiceService = {
|
|
|
5765
5765
|
responseDeserialize: (value) => ResolveAllResponse.decode(value),
|
|
5766
5766
|
},
|
|
5767
5767
|
resolveBoolean: {
|
|
5768
|
-
path: "/
|
|
5768
|
+
path: "/flagd.evaluation.v1.Service/ResolveBoolean",
|
|
5769
5769
|
requestStream: false,
|
|
5770
5770
|
responseStream: false,
|
|
5771
5771
|
requestSerialize: (value) => Buffer.from(ResolveBooleanRequest.encode(value).finish()),
|
|
@@ -5774,7 +5774,7 @@ const ServiceService = {
|
|
|
5774
5774
|
responseDeserialize: (value) => ResolveBooleanResponse.decode(value),
|
|
5775
5775
|
},
|
|
5776
5776
|
resolveString: {
|
|
5777
|
-
path: "/
|
|
5777
|
+
path: "/flagd.evaluation.v1.Service/ResolveString",
|
|
5778
5778
|
requestStream: false,
|
|
5779
5779
|
responseStream: false,
|
|
5780
5780
|
requestSerialize: (value) => Buffer.from(ResolveStringRequest.encode(value).finish()),
|
|
@@ -5783,7 +5783,7 @@ const ServiceService = {
|
|
|
5783
5783
|
responseDeserialize: (value) => ResolveStringResponse.decode(value),
|
|
5784
5784
|
},
|
|
5785
5785
|
resolveFloat: {
|
|
5786
|
-
path: "/
|
|
5786
|
+
path: "/flagd.evaluation.v1.Service/ResolveFloat",
|
|
5787
5787
|
requestStream: false,
|
|
5788
5788
|
responseStream: false,
|
|
5789
5789
|
requestSerialize: (value) => Buffer.from(ResolveFloatRequest.encode(value).finish()),
|
|
@@ -5792,7 +5792,7 @@ const ServiceService = {
|
|
|
5792
5792
|
responseDeserialize: (value) => ResolveFloatResponse.decode(value),
|
|
5793
5793
|
},
|
|
5794
5794
|
resolveInt: {
|
|
5795
|
-
path: "/
|
|
5795
|
+
path: "/flagd.evaluation.v1.Service/ResolveInt",
|
|
5796
5796
|
requestStream: false,
|
|
5797
5797
|
responseStream: false,
|
|
5798
5798
|
requestSerialize: (value) => Buffer.from(ResolveIntRequest.encode(value).finish()),
|
|
@@ -5801,7 +5801,7 @@ const ServiceService = {
|
|
|
5801
5801
|
responseDeserialize: (value) => ResolveIntResponse.decode(value),
|
|
5802
5802
|
},
|
|
5803
5803
|
resolveObject: {
|
|
5804
|
-
path: "/
|
|
5804
|
+
path: "/flagd.evaluation.v1.Service/ResolveObject",
|
|
5805
5805
|
requestStream: false,
|
|
5806
5806
|
responseStream: false,
|
|
5807
5807
|
requestSerialize: (value) => Buffer.from(ResolveObjectRequest.encode(value).finish()),
|
|
@@ -5810,7 +5810,7 @@ const ServiceService = {
|
|
|
5810
5810
|
responseDeserialize: (value) => ResolveObjectResponse.decode(value),
|
|
5811
5811
|
},
|
|
5812
5812
|
eventStream: {
|
|
5813
|
-
path: "/
|
|
5813
|
+
path: "/flagd.evaluation.v1.Service/EventStream",
|
|
5814
5814
|
requestStream: false,
|
|
5815
5815
|
responseStream: true,
|
|
5816
5816
|
requestSerialize: (value) => Buffer.from(EventStreamRequest.encode(value).finish()),
|
|
@@ -5819,7 +5819,7 @@ const ServiceService = {
|
|
|
5819
5819
|
responseDeserialize: (value) => EventStreamResponse.decode(value),
|
|
5820
5820
|
},
|
|
5821
5821
|
};
|
|
5822
|
-
const ServiceClient = grpcJs.makeGenericClientConstructor(ServiceService, "
|
|
5822
|
+
const ServiceClient = grpcJs.makeGenericClientConstructor(ServiceService, "flagd.evaluation.v1.Service");
|
|
5823
5823
|
function longToString(long) {
|
|
5824
5824
|
return long.toString();
|
|
5825
5825
|
}
|
|
@@ -6004,83 +6004,6 @@ class GRPCService {
|
|
|
6004
6004
|
}
|
|
6005
6005
|
|
|
6006
6006
|
/* eslint-disable */
|
|
6007
|
-
/**
|
|
6008
|
-
* Flag definition sync API
|
|
6009
|
-
*
|
|
6010
|
-
* This proto defines a simple API to synchronize a feature flag definition.
|
|
6011
|
-
* It supports establishing a stream for getting notifications about changes in a flag definition.
|
|
6012
|
-
*/
|
|
6013
|
-
/**
|
|
6014
|
-
* SyncState conveys the state of the payload. These states are related to flagd isync.go type definitions but
|
|
6015
|
-
* contains extras to optimize grpc use case. Refer - https://github.com/open-feature/flagd/blob/main/pkg/sync/isync.go
|
|
6016
|
-
*/
|
|
6017
|
-
var SyncState;
|
|
6018
|
-
(function (SyncState) {
|
|
6019
|
-
/** SYNC_STATE_UNSPECIFIED - Value is ignored by the listening flagd */
|
|
6020
|
-
SyncState[SyncState["SYNC_STATE_UNSPECIFIED"] = 0] = "SYNC_STATE_UNSPECIFIED";
|
|
6021
|
-
/**
|
|
6022
|
-
* SYNC_STATE_ALL - All the flags matching the request. This is the default response and other states can be ignored
|
|
6023
|
-
* by the implementation. Flagd internally replaces all existing flags for this response state.
|
|
6024
|
-
*/
|
|
6025
|
-
SyncState[SyncState["SYNC_STATE_ALL"] = 1] = "SYNC_STATE_ALL";
|
|
6026
|
-
/** SYNC_STATE_ADD - Convey an addition of a flag. Flagd internally handles this by combining new flags with existing ones */
|
|
6027
|
-
SyncState[SyncState["SYNC_STATE_ADD"] = 2] = "SYNC_STATE_ADD";
|
|
6028
|
-
/**
|
|
6029
|
-
* SYNC_STATE_UPDATE - Convey an update of a flag. Flagd internally attempts to update if the updated flag already exist OR if it does not,
|
|
6030
|
-
* it will get added
|
|
6031
|
-
*/
|
|
6032
|
-
SyncState[SyncState["SYNC_STATE_UPDATE"] = 3] = "SYNC_STATE_UPDATE";
|
|
6033
|
-
/** SYNC_STATE_DELETE - Convey a deletion of a flag. Flagd internally removes the flag */
|
|
6034
|
-
SyncState[SyncState["SYNC_STATE_DELETE"] = 4] = "SYNC_STATE_DELETE";
|
|
6035
|
-
/** SYNC_STATE_PING - Optional server ping to check client connectivity. Handling is ignored by flagd and is to merely support live check */
|
|
6036
|
-
SyncState[SyncState["SYNC_STATE_PING"] = 5] = "SYNC_STATE_PING";
|
|
6037
|
-
SyncState[SyncState["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
6038
|
-
})(SyncState || (SyncState = {}));
|
|
6039
|
-
function syncStateFromJSON(object) {
|
|
6040
|
-
switch (object) {
|
|
6041
|
-
case 0:
|
|
6042
|
-
case "SYNC_STATE_UNSPECIFIED":
|
|
6043
|
-
return SyncState.SYNC_STATE_UNSPECIFIED;
|
|
6044
|
-
case 1:
|
|
6045
|
-
case "SYNC_STATE_ALL":
|
|
6046
|
-
return SyncState.SYNC_STATE_ALL;
|
|
6047
|
-
case 2:
|
|
6048
|
-
case "SYNC_STATE_ADD":
|
|
6049
|
-
return SyncState.SYNC_STATE_ADD;
|
|
6050
|
-
case 3:
|
|
6051
|
-
case "SYNC_STATE_UPDATE":
|
|
6052
|
-
return SyncState.SYNC_STATE_UPDATE;
|
|
6053
|
-
case 4:
|
|
6054
|
-
case "SYNC_STATE_DELETE":
|
|
6055
|
-
return SyncState.SYNC_STATE_DELETE;
|
|
6056
|
-
case 5:
|
|
6057
|
-
case "SYNC_STATE_PING":
|
|
6058
|
-
return SyncState.SYNC_STATE_PING;
|
|
6059
|
-
case -1:
|
|
6060
|
-
case "UNRECOGNIZED":
|
|
6061
|
-
default:
|
|
6062
|
-
return SyncState.UNRECOGNIZED;
|
|
6063
|
-
}
|
|
6064
|
-
}
|
|
6065
|
-
function syncStateToJSON(object) {
|
|
6066
|
-
switch (object) {
|
|
6067
|
-
case SyncState.SYNC_STATE_UNSPECIFIED:
|
|
6068
|
-
return "SYNC_STATE_UNSPECIFIED";
|
|
6069
|
-
case SyncState.SYNC_STATE_ALL:
|
|
6070
|
-
return "SYNC_STATE_ALL";
|
|
6071
|
-
case SyncState.SYNC_STATE_ADD:
|
|
6072
|
-
return "SYNC_STATE_ADD";
|
|
6073
|
-
case SyncState.SYNC_STATE_UPDATE:
|
|
6074
|
-
return "SYNC_STATE_UPDATE";
|
|
6075
|
-
case SyncState.SYNC_STATE_DELETE:
|
|
6076
|
-
return "SYNC_STATE_DELETE";
|
|
6077
|
-
case SyncState.SYNC_STATE_PING:
|
|
6078
|
-
return "SYNC_STATE_PING";
|
|
6079
|
-
case SyncState.UNRECOGNIZED:
|
|
6080
|
-
default:
|
|
6081
|
-
return "UNRECOGNIZED";
|
|
6082
|
-
}
|
|
6083
|
-
}
|
|
6084
6007
|
function createBaseSyncFlagsRequest() {
|
|
6085
6008
|
return { providerId: "", selector: "" };
|
|
6086
6009
|
}
|
|
@@ -6149,16 +6072,13 @@ const SyncFlagsRequest = {
|
|
|
6149
6072
|
},
|
|
6150
6073
|
};
|
|
6151
6074
|
function createBaseSyncFlagsResponse() {
|
|
6152
|
-
return { flagConfiguration: ""
|
|
6075
|
+
return { flagConfiguration: "" };
|
|
6153
6076
|
}
|
|
6154
6077
|
const SyncFlagsResponse = {
|
|
6155
6078
|
encode(message, writer = minimal.Writer.create()) {
|
|
6156
6079
|
if (message.flagConfiguration !== "") {
|
|
6157
6080
|
writer.uint32(10).string(message.flagConfiguration);
|
|
6158
6081
|
}
|
|
6159
|
-
if (message.state !== 0) {
|
|
6160
|
-
writer.uint32(16).int32(message.state);
|
|
6161
|
-
}
|
|
6162
6082
|
return writer;
|
|
6163
6083
|
},
|
|
6164
6084
|
decode(input, length) {
|
|
@@ -6174,12 +6094,6 @@ const SyncFlagsResponse = {
|
|
|
6174
6094
|
}
|
|
6175
6095
|
message.flagConfiguration = reader.string();
|
|
6176
6096
|
continue;
|
|
6177
|
-
case 2:
|
|
6178
|
-
if (tag !== 16) {
|
|
6179
|
-
break;
|
|
6180
|
-
}
|
|
6181
|
-
message.state = reader.int32();
|
|
6182
|
-
continue;
|
|
6183
6097
|
}
|
|
6184
6098
|
if ((tag & 7) === 4 || tag === 0) {
|
|
6185
6099
|
break;
|
|
@@ -6189,29 +6103,22 @@ const SyncFlagsResponse = {
|
|
|
6189
6103
|
return message;
|
|
6190
6104
|
},
|
|
6191
6105
|
fromJSON(object) {
|
|
6192
|
-
return {
|
|
6193
|
-
flagConfiguration: isSet(object.flagConfiguration) ? String(object.flagConfiguration) : "",
|
|
6194
|
-
state: isSet(object.state) ? syncStateFromJSON(object.state) : 0,
|
|
6195
|
-
};
|
|
6106
|
+
return { flagConfiguration: isSet(object.flagConfiguration) ? String(object.flagConfiguration) : "" };
|
|
6196
6107
|
},
|
|
6197
6108
|
toJSON(message) {
|
|
6198
6109
|
const obj = {};
|
|
6199
6110
|
if (message.flagConfiguration !== "") {
|
|
6200
6111
|
obj.flagConfiguration = message.flagConfiguration;
|
|
6201
6112
|
}
|
|
6202
|
-
if (message.state !== 0) {
|
|
6203
|
-
obj.state = syncStateToJSON(message.state);
|
|
6204
|
-
}
|
|
6205
6113
|
return obj;
|
|
6206
6114
|
},
|
|
6207
6115
|
create(base) {
|
|
6208
6116
|
return SyncFlagsResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6209
6117
|
},
|
|
6210
6118
|
fromPartial(object) {
|
|
6211
|
-
var _a
|
|
6119
|
+
var _a;
|
|
6212
6120
|
const message = createBaseSyncFlagsResponse();
|
|
6213
6121
|
message.flagConfiguration = (_a = object.flagConfiguration) !== null && _a !== void 0 ? _a : "";
|
|
6214
|
-
message.state = (_b = object.state) !== null && _b !== void 0 ? _b : 0;
|
|
6215
6122
|
return message;
|
|
6216
6123
|
},
|
|
6217
6124
|
};
|
|
@@ -6333,9 +6240,160 @@ const FetchAllFlagsResponse = {
|
|
|
6333
6240
|
return message;
|
|
6334
6241
|
},
|
|
6335
6242
|
};
|
|
6243
|
+
function createBaseGetMetadataRequest() {
|
|
6244
|
+
return {};
|
|
6245
|
+
}
|
|
6246
|
+
const GetMetadataRequest = {
|
|
6247
|
+
encode(_, writer = minimal.Writer.create()) {
|
|
6248
|
+
return writer;
|
|
6249
|
+
},
|
|
6250
|
+
decode(input, length) {
|
|
6251
|
+
const reader = input instanceof minimal.Reader ? input : minimal.Reader.create(input);
|
|
6252
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
6253
|
+
const message = createBaseGetMetadataRequest();
|
|
6254
|
+
while (reader.pos < end) {
|
|
6255
|
+
const tag = reader.uint32();
|
|
6256
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
6257
|
+
break;
|
|
6258
|
+
}
|
|
6259
|
+
reader.skipType(tag & 7);
|
|
6260
|
+
}
|
|
6261
|
+
return message;
|
|
6262
|
+
},
|
|
6263
|
+
fromJSON(_) {
|
|
6264
|
+
return {};
|
|
6265
|
+
},
|
|
6266
|
+
toJSON(_) {
|
|
6267
|
+
const obj = {};
|
|
6268
|
+
return obj;
|
|
6269
|
+
},
|
|
6270
|
+
create(base) {
|
|
6271
|
+
return GetMetadataRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6272
|
+
},
|
|
6273
|
+
fromPartial(_) {
|
|
6274
|
+
const message = createBaseGetMetadataRequest();
|
|
6275
|
+
return message;
|
|
6276
|
+
},
|
|
6277
|
+
};
|
|
6278
|
+
function createBaseGetMetadataResponse() {
|
|
6279
|
+
return { metadata: [] };
|
|
6280
|
+
}
|
|
6281
|
+
const GetMetadataResponse = {
|
|
6282
|
+
encode(message, writer = minimal.Writer.create()) {
|
|
6283
|
+
for (const v of message.metadata) {
|
|
6284
|
+
KeyValue.encode(v, writer.uint32(10).fork()).ldelim();
|
|
6285
|
+
}
|
|
6286
|
+
return writer;
|
|
6287
|
+
},
|
|
6288
|
+
decode(input, length) {
|
|
6289
|
+
const reader = input instanceof minimal.Reader ? input : minimal.Reader.create(input);
|
|
6290
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
6291
|
+
const message = createBaseGetMetadataResponse();
|
|
6292
|
+
while (reader.pos < end) {
|
|
6293
|
+
const tag = reader.uint32();
|
|
6294
|
+
switch (tag >>> 3) {
|
|
6295
|
+
case 1:
|
|
6296
|
+
if (tag !== 10) {
|
|
6297
|
+
break;
|
|
6298
|
+
}
|
|
6299
|
+
message.metadata.push(KeyValue.decode(reader, reader.uint32()));
|
|
6300
|
+
continue;
|
|
6301
|
+
}
|
|
6302
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
6303
|
+
break;
|
|
6304
|
+
}
|
|
6305
|
+
reader.skipType(tag & 7);
|
|
6306
|
+
}
|
|
6307
|
+
return message;
|
|
6308
|
+
},
|
|
6309
|
+
fromJSON(object) {
|
|
6310
|
+
return { metadata: Array.isArray(object === null || object === void 0 ? void 0 : object.metadata) ? object.metadata.map((e) => KeyValue.fromJSON(e)) : [] };
|
|
6311
|
+
},
|
|
6312
|
+
toJSON(message) {
|
|
6313
|
+
var _a;
|
|
6314
|
+
const obj = {};
|
|
6315
|
+
if ((_a = message.metadata) === null || _a === void 0 ? void 0 : _a.length) {
|
|
6316
|
+
obj.metadata = message.metadata.map((e) => KeyValue.toJSON(e));
|
|
6317
|
+
}
|
|
6318
|
+
return obj;
|
|
6319
|
+
},
|
|
6320
|
+
create(base) {
|
|
6321
|
+
return GetMetadataResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6322
|
+
},
|
|
6323
|
+
fromPartial(object) {
|
|
6324
|
+
var _a;
|
|
6325
|
+
const message = createBaseGetMetadataResponse();
|
|
6326
|
+
message.metadata = ((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.map((e) => KeyValue.fromPartial(e))) || [];
|
|
6327
|
+
return message;
|
|
6328
|
+
},
|
|
6329
|
+
};
|
|
6330
|
+
function createBaseKeyValue() {
|
|
6331
|
+
return { key: "", value: "" };
|
|
6332
|
+
}
|
|
6333
|
+
const KeyValue = {
|
|
6334
|
+
encode(message, writer = minimal.Writer.create()) {
|
|
6335
|
+
if (message.key !== "") {
|
|
6336
|
+
writer.uint32(10).string(message.key);
|
|
6337
|
+
}
|
|
6338
|
+
if (message.value !== "") {
|
|
6339
|
+
writer.uint32(18).string(message.value);
|
|
6340
|
+
}
|
|
6341
|
+
return writer;
|
|
6342
|
+
},
|
|
6343
|
+
decode(input, length) {
|
|
6344
|
+
const reader = input instanceof minimal.Reader ? input : minimal.Reader.create(input);
|
|
6345
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
6346
|
+
const message = createBaseKeyValue();
|
|
6347
|
+
while (reader.pos < end) {
|
|
6348
|
+
const tag = reader.uint32();
|
|
6349
|
+
switch (tag >>> 3) {
|
|
6350
|
+
case 1:
|
|
6351
|
+
if (tag !== 10) {
|
|
6352
|
+
break;
|
|
6353
|
+
}
|
|
6354
|
+
message.key = reader.string();
|
|
6355
|
+
continue;
|
|
6356
|
+
case 2:
|
|
6357
|
+
if (tag !== 18) {
|
|
6358
|
+
break;
|
|
6359
|
+
}
|
|
6360
|
+
message.value = reader.string();
|
|
6361
|
+
continue;
|
|
6362
|
+
}
|
|
6363
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
6364
|
+
break;
|
|
6365
|
+
}
|
|
6366
|
+
reader.skipType(tag & 7);
|
|
6367
|
+
}
|
|
6368
|
+
return message;
|
|
6369
|
+
},
|
|
6370
|
+
fromJSON(object) {
|
|
6371
|
+
return { key: isSet(object.key) ? String(object.key) : "", value: isSet(object.value) ? String(object.value) : "" };
|
|
6372
|
+
},
|
|
6373
|
+
toJSON(message) {
|
|
6374
|
+
const obj = {};
|
|
6375
|
+
if (message.key !== "") {
|
|
6376
|
+
obj.key = message.key;
|
|
6377
|
+
}
|
|
6378
|
+
if (message.value !== "") {
|
|
6379
|
+
obj.value = message.value;
|
|
6380
|
+
}
|
|
6381
|
+
return obj;
|
|
6382
|
+
},
|
|
6383
|
+
create(base) {
|
|
6384
|
+
return KeyValue.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6385
|
+
},
|
|
6386
|
+
fromPartial(object) {
|
|
6387
|
+
var _a, _b;
|
|
6388
|
+
const message = createBaseKeyValue();
|
|
6389
|
+
message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
|
|
6390
|
+
message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
|
|
6391
|
+
return message;
|
|
6392
|
+
},
|
|
6393
|
+
};
|
|
6336
6394
|
const FlagSyncServiceService = {
|
|
6337
6395
|
syncFlags: {
|
|
6338
|
-
path: "/sync.v1.FlagSyncService/SyncFlags",
|
|
6396
|
+
path: "/flagd.sync.v1.FlagSyncService/SyncFlags",
|
|
6339
6397
|
requestStream: false,
|
|
6340
6398
|
responseStream: true,
|
|
6341
6399
|
requestSerialize: (value) => Buffer.from(SyncFlagsRequest.encode(value).finish()),
|
|
@@ -6344,7 +6402,7 @@ const FlagSyncServiceService = {
|
|
|
6344
6402
|
responseDeserialize: (value) => SyncFlagsResponse.decode(value),
|
|
6345
6403
|
},
|
|
6346
6404
|
fetchAllFlags: {
|
|
6347
|
-
path: "/sync.v1.FlagSyncService/FetchAllFlags",
|
|
6405
|
+
path: "/flagd.sync.v1.FlagSyncService/FetchAllFlags",
|
|
6348
6406
|
requestStream: false,
|
|
6349
6407
|
responseStream: false,
|
|
6350
6408
|
requestSerialize: (value) => Buffer.from(FetchAllFlagsRequest.encode(value).finish()),
|
|
@@ -6352,8 +6410,17 @@ const FlagSyncServiceService = {
|
|
|
6352
6410
|
responseSerialize: (value) => Buffer.from(FetchAllFlagsResponse.encode(value).finish()),
|
|
6353
6411
|
responseDeserialize: (value) => FetchAllFlagsResponse.decode(value),
|
|
6354
6412
|
},
|
|
6413
|
+
getMetadata: {
|
|
6414
|
+
path: "/flagd.sync.v1.FlagSyncService/GetMetadata",
|
|
6415
|
+
requestStream: false,
|
|
6416
|
+
responseStream: false,
|
|
6417
|
+
requestSerialize: (value) => Buffer.from(GetMetadataRequest.encode(value).finish()),
|
|
6418
|
+
requestDeserialize: (value) => GetMetadataRequest.decode(value),
|
|
6419
|
+
responseSerialize: (value) => Buffer.from(GetMetadataResponse.encode(value).finish()),
|
|
6420
|
+
responseDeserialize: (value) => GetMetadataResponse.decode(value),
|
|
6421
|
+
},
|
|
6355
6422
|
};
|
|
6356
|
-
const FlagSyncServiceClient = grpcJs.makeGenericClientConstructor(FlagSyncServiceService, "sync.v1.FlagSyncService");
|
|
6423
|
+
const FlagSyncServiceClient = grpcJs.makeGenericClientConstructor(FlagSyncServiceService, "flagd.sync.v1.FlagSyncService");
|
|
6357
6424
|
function isSet(value) {
|
|
6358
6425
|
return value !== null && value !== undefined;
|
|
6359
6426
|
}
|
|
@@ -6399,39 +6466,47 @@ class GrpcFetch {
|
|
|
6399
6466
|
var _a;
|
|
6400
6467
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.debug('Starting gRPC sync connection');
|
|
6401
6468
|
closeStreamIfDefined(this._syncStream);
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6469
|
+
try {
|
|
6470
|
+
this._syncStream = this._syncClient.syncFlags(this._request);
|
|
6471
|
+
this._syncStream.on('data', (data) => {
|
|
6472
|
+
var _a, _b, _c, _d;
|
|
6473
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.debug(`Received sync payload`);
|
|
6474
|
+
try {
|
|
6475
|
+
const changes = dataCallback(data.flagConfiguration);
|
|
6476
|
+
if (this._initialized && changes.length > 0) {
|
|
6477
|
+
changedCallback(changes);
|
|
6478
|
+
}
|
|
6410
6479
|
}
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
this.
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
6434
|
-
|
|
6480
|
+
catch (err) {
|
|
6481
|
+
(_b = this._logger) === null || _b === void 0 ? void 0 : _b.debug('Error processing sync payload: ', (_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : 'unknown error');
|
|
6482
|
+
}
|
|
6483
|
+
if (resolveConnect) {
|
|
6484
|
+
resolveConnect();
|
|
6485
|
+
}
|
|
6486
|
+
else if (!this._isConnected) {
|
|
6487
|
+
// Not the first connection and there's no active connection.
|
|
6488
|
+
(_d = this._logger) === null || _d === void 0 ? void 0 : _d.debug('Reconnected to gRPC sync');
|
|
6489
|
+
reconnectCallback();
|
|
6490
|
+
}
|
|
6491
|
+
this._isConnected = true;
|
|
6492
|
+
});
|
|
6493
|
+
this._syncStream.on('error', (err) => {
|
|
6494
|
+
this.handleError(err, dataCallback, reconnectCallback, changedCallback, disconnectCallback, rejectConnect);
|
|
6495
|
+
});
|
|
6496
|
+
}
|
|
6497
|
+
catch (err) {
|
|
6498
|
+
this.handleError(err, dataCallback, reconnectCallback, changedCallback, disconnectCallback, rejectConnect);
|
|
6499
|
+
}
|
|
6500
|
+
}
|
|
6501
|
+
handleError(err, dataCallback, reconnectCallback, changedCallback, disconnectCallback, rejectConnect) {
|
|
6502
|
+
var _a, _b, _c;
|
|
6503
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.error('Connection error, attempting to reconnect');
|
|
6504
|
+
(_b = this._logger) === null || _b === void 0 ? void 0 : _b.debug(err);
|
|
6505
|
+
this._isConnected = false;
|
|
6506
|
+
const errorMessage = (_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : 'Failed to connect to syncFlags stream';
|
|
6507
|
+
disconnectCallback(errorMessage);
|
|
6508
|
+
rejectConnect === null || rejectConnect === void 0 ? void 0 : rejectConnect(new serverSdk.GeneralError(errorMessage));
|
|
6509
|
+
this.reconnect(dataCallback, reconnectCallback, changedCallback, disconnectCallback);
|
|
6435
6510
|
}
|
|
6436
6511
|
reconnect(dataCallback, reconnectCallback, changedCallback, disconnectCallback) {
|
|
6437
6512
|
const channel = this._syncClient.getChannel();
|
package/index.esm.js
CHANGED
|
@@ -5752,7 +5752,7 @@ const EventStreamRequest = {
|
|
|
5752
5752
|
};
|
|
5753
5753
|
const ServiceService = {
|
|
5754
5754
|
resolveAll: {
|
|
5755
|
-
path: "/
|
|
5755
|
+
path: "/flagd.evaluation.v1.Service/ResolveAll",
|
|
5756
5756
|
requestStream: false,
|
|
5757
5757
|
responseStream: false,
|
|
5758
5758
|
requestSerialize: (value) => Buffer.from(ResolveAllRequest.encode(value).finish()),
|
|
@@ -5761,7 +5761,7 @@ const ServiceService = {
|
|
|
5761
5761
|
responseDeserialize: (value) => ResolveAllResponse.decode(value),
|
|
5762
5762
|
},
|
|
5763
5763
|
resolveBoolean: {
|
|
5764
|
-
path: "/
|
|
5764
|
+
path: "/flagd.evaluation.v1.Service/ResolveBoolean",
|
|
5765
5765
|
requestStream: false,
|
|
5766
5766
|
responseStream: false,
|
|
5767
5767
|
requestSerialize: (value) => Buffer.from(ResolveBooleanRequest.encode(value).finish()),
|
|
@@ -5770,7 +5770,7 @@ const ServiceService = {
|
|
|
5770
5770
|
responseDeserialize: (value) => ResolveBooleanResponse.decode(value),
|
|
5771
5771
|
},
|
|
5772
5772
|
resolveString: {
|
|
5773
|
-
path: "/
|
|
5773
|
+
path: "/flagd.evaluation.v1.Service/ResolveString",
|
|
5774
5774
|
requestStream: false,
|
|
5775
5775
|
responseStream: false,
|
|
5776
5776
|
requestSerialize: (value) => Buffer.from(ResolveStringRequest.encode(value).finish()),
|
|
@@ -5779,7 +5779,7 @@ const ServiceService = {
|
|
|
5779
5779
|
responseDeserialize: (value) => ResolveStringResponse.decode(value),
|
|
5780
5780
|
},
|
|
5781
5781
|
resolveFloat: {
|
|
5782
|
-
path: "/
|
|
5782
|
+
path: "/flagd.evaluation.v1.Service/ResolveFloat",
|
|
5783
5783
|
requestStream: false,
|
|
5784
5784
|
responseStream: false,
|
|
5785
5785
|
requestSerialize: (value) => Buffer.from(ResolveFloatRequest.encode(value).finish()),
|
|
@@ -5788,7 +5788,7 @@ const ServiceService = {
|
|
|
5788
5788
|
responseDeserialize: (value) => ResolveFloatResponse.decode(value),
|
|
5789
5789
|
},
|
|
5790
5790
|
resolveInt: {
|
|
5791
|
-
path: "/
|
|
5791
|
+
path: "/flagd.evaluation.v1.Service/ResolveInt",
|
|
5792
5792
|
requestStream: false,
|
|
5793
5793
|
responseStream: false,
|
|
5794
5794
|
requestSerialize: (value) => Buffer.from(ResolveIntRequest.encode(value).finish()),
|
|
@@ -5797,7 +5797,7 @@ const ServiceService = {
|
|
|
5797
5797
|
responseDeserialize: (value) => ResolveIntResponse.decode(value),
|
|
5798
5798
|
},
|
|
5799
5799
|
resolveObject: {
|
|
5800
|
-
path: "/
|
|
5800
|
+
path: "/flagd.evaluation.v1.Service/ResolveObject",
|
|
5801
5801
|
requestStream: false,
|
|
5802
5802
|
responseStream: false,
|
|
5803
5803
|
requestSerialize: (value) => Buffer.from(ResolveObjectRequest.encode(value).finish()),
|
|
@@ -5806,7 +5806,7 @@ const ServiceService = {
|
|
|
5806
5806
|
responseDeserialize: (value) => ResolveObjectResponse.decode(value),
|
|
5807
5807
|
},
|
|
5808
5808
|
eventStream: {
|
|
5809
|
-
path: "/
|
|
5809
|
+
path: "/flagd.evaluation.v1.Service/EventStream",
|
|
5810
5810
|
requestStream: false,
|
|
5811
5811
|
responseStream: true,
|
|
5812
5812
|
requestSerialize: (value) => Buffer.from(EventStreamRequest.encode(value).finish()),
|
|
@@ -5815,7 +5815,7 @@ const ServiceService = {
|
|
|
5815
5815
|
responseDeserialize: (value) => EventStreamResponse.decode(value),
|
|
5816
5816
|
},
|
|
5817
5817
|
};
|
|
5818
|
-
const ServiceClient = makeGenericClientConstructor(ServiceService, "
|
|
5818
|
+
const ServiceClient = makeGenericClientConstructor(ServiceService, "flagd.evaluation.v1.Service");
|
|
5819
5819
|
function longToString(long) {
|
|
5820
5820
|
return long.toString();
|
|
5821
5821
|
}
|
|
@@ -6000,83 +6000,6 @@ class GRPCService {
|
|
|
6000
6000
|
}
|
|
6001
6001
|
|
|
6002
6002
|
/* eslint-disable */
|
|
6003
|
-
/**
|
|
6004
|
-
* Flag definition sync API
|
|
6005
|
-
*
|
|
6006
|
-
* This proto defines a simple API to synchronize a feature flag definition.
|
|
6007
|
-
* It supports establishing a stream for getting notifications about changes in a flag definition.
|
|
6008
|
-
*/
|
|
6009
|
-
/**
|
|
6010
|
-
* SyncState conveys the state of the payload. These states are related to flagd isync.go type definitions but
|
|
6011
|
-
* contains extras to optimize grpc use case. Refer - https://github.com/open-feature/flagd/blob/main/pkg/sync/isync.go
|
|
6012
|
-
*/
|
|
6013
|
-
var SyncState;
|
|
6014
|
-
(function (SyncState) {
|
|
6015
|
-
/** SYNC_STATE_UNSPECIFIED - Value is ignored by the listening flagd */
|
|
6016
|
-
SyncState[SyncState["SYNC_STATE_UNSPECIFIED"] = 0] = "SYNC_STATE_UNSPECIFIED";
|
|
6017
|
-
/**
|
|
6018
|
-
* SYNC_STATE_ALL - All the flags matching the request. This is the default response and other states can be ignored
|
|
6019
|
-
* by the implementation. Flagd internally replaces all existing flags for this response state.
|
|
6020
|
-
*/
|
|
6021
|
-
SyncState[SyncState["SYNC_STATE_ALL"] = 1] = "SYNC_STATE_ALL";
|
|
6022
|
-
/** SYNC_STATE_ADD - Convey an addition of a flag. Flagd internally handles this by combining new flags with existing ones */
|
|
6023
|
-
SyncState[SyncState["SYNC_STATE_ADD"] = 2] = "SYNC_STATE_ADD";
|
|
6024
|
-
/**
|
|
6025
|
-
* SYNC_STATE_UPDATE - Convey an update of a flag. Flagd internally attempts to update if the updated flag already exist OR if it does not,
|
|
6026
|
-
* it will get added
|
|
6027
|
-
*/
|
|
6028
|
-
SyncState[SyncState["SYNC_STATE_UPDATE"] = 3] = "SYNC_STATE_UPDATE";
|
|
6029
|
-
/** SYNC_STATE_DELETE - Convey a deletion of a flag. Flagd internally removes the flag */
|
|
6030
|
-
SyncState[SyncState["SYNC_STATE_DELETE"] = 4] = "SYNC_STATE_DELETE";
|
|
6031
|
-
/** SYNC_STATE_PING - Optional server ping to check client connectivity. Handling is ignored by flagd and is to merely support live check */
|
|
6032
|
-
SyncState[SyncState["SYNC_STATE_PING"] = 5] = "SYNC_STATE_PING";
|
|
6033
|
-
SyncState[SyncState["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
6034
|
-
})(SyncState || (SyncState = {}));
|
|
6035
|
-
function syncStateFromJSON(object) {
|
|
6036
|
-
switch (object) {
|
|
6037
|
-
case 0:
|
|
6038
|
-
case "SYNC_STATE_UNSPECIFIED":
|
|
6039
|
-
return SyncState.SYNC_STATE_UNSPECIFIED;
|
|
6040
|
-
case 1:
|
|
6041
|
-
case "SYNC_STATE_ALL":
|
|
6042
|
-
return SyncState.SYNC_STATE_ALL;
|
|
6043
|
-
case 2:
|
|
6044
|
-
case "SYNC_STATE_ADD":
|
|
6045
|
-
return SyncState.SYNC_STATE_ADD;
|
|
6046
|
-
case 3:
|
|
6047
|
-
case "SYNC_STATE_UPDATE":
|
|
6048
|
-
return SyncState.SYNC_STATE_UPDATE;
|
|
6049
|
-
case 4:
|
|
6050
|
-
case "SYNC_STATE_DELETE":
|
|
6051
|
-
return SyncState.SYNC_STATE_DELETE;
|
|
6052
|
-
case 5:
|
|
6053
|
-
case "SYNC_STATE_PING":
|
|
6054
|
-
return SyncState.SYNC_STATE_PING;
|
|
6055
|
-
case -1:
|
|
6056
|
-
case "UNRECOGNIZED":
|
|
6057
|
-
default:
|
|
6058
|
-
return SyncState.UNRECOGNIZED;
|
|
6059
|
-
}
|
|
6060
|
-
}
|
|
6061
|
-
function syncStateToJSON(object) {
|
|
6062
|
-
switch (object) {
|
|
6063
|
-
case SyncState.SYNC_STATE_UNSPECIFIED:
|
|
6064
|
-
return "SYNC_STATE_UNSPECIFIED";
|
|
6065
|
-
case SyncState.SYNC_STATE_ALL:
|
|
6066
|
-
return "SYNC_STATE_ALL";
|
|
6067
|
-
case SyncState.SYNC_STATE_ADD:
|
|
6068
|
-
return "SYNC_STATE_ADD";
|
|
6069
|
-
case SyncState.SYNC_STATE_UPDATE:
|
|
6070
|
-
return "SYNC_STATE_UPDATE";
|
|
6071
|
-
case SyncState.SYNC_STATE_DELETE:
|
|
6072
|
-
return "SYNC_STATE_DELETE";
|
|
6073
|
-
case SyncState.SYNC_STATE_PING:
|
|
6074
|
-
return "SYNC_STATE_PING";
|
|
6075
|
-
case SyncState.UNRECOGNIZED:
|
|
6076
|
-
default:
|
|
6077
|
-
return "UNRECOGNIZED";
|
|
6078
|
-
}
|
|
6079
|
-
}
|
|
6080
6003
|
function createBaseSyncFlagsRequest() {
|
|
6081
6004
|
return { providerId: "", selector: "" };
|
|
6082
6005
|
}
|
|
@@ -6145,16 +6068,13 @@ const SyncFlagsRequest = {
|
|
|
6145
6068
|
},
|
|
6146
6069
|
};
|
|
6147
6070
|
function createBaseSyncFlagsResponse() {
|
|
6148
|
-
return { flagConfiguration: ""
|
|
6071
|
+
return { flagConfiguration: "" };
|
|
6149
6072
|
}
|
|
6150
6073
|
const SyncFlagsResponse = {
|
|
6151
6074
|
encode(message, writer = minimal.Writer.create()) {
|
|
6152
6075
|
if (message.flagConfiguration !== "") {
|
|
6153
6076
|
writer.uint32(10).string(message.flagConfiguration);
|
|
6154
6077
|
}
|
|
6155
|
-
if (message.state !== 0) {
|
|
6156
|
-
writer.uint32(16).int32(message.state);
|
|
6157
|
-
}
|
|
6158
6078
|
return writer;
|
|
6159
6079
|
},
|
|
6160
6080
|
decode(input, length) {
|
|
@@ -6170,12 +6090,6 @@ const SyncFlagsResponse = {
|
|
|
6170
6090
|
}
|
|
6171
6091
|
message.flagConfiguration = reader.string();
|
|
6172
6092
|
continue;
|
|
6173
|
-
case 2:
|
|
6174
|
-
if (tag !== 16) {
|
|
6175
|
-
break;
|
|
6176
|
-
}
|
|
6177
|
-
message.state = reader.int32();
|
|
6178
|
-
continue;
|
|
6179
6093
|
}
|
|
6180
6094
|
if ((tag & 7) === 4 || tag === 0) {
|
|
6181
6095
|
break;
|
|
@@ -6185,29 +6099,22 @@ const SyncFlagsResponse = {
|
|
|
6185
6099
|
return message;
|
|
6186
6100
|
},
|
|
6187
6101
|
fromJSON(object) {
|
|
6188
|
-
return {
|
|
6189
|
-
flagConfiguration: isSet(object.flagConfiguration) ? String(object.flagConfiguration) : "",
|
|
6190
|
-
state: isSet(object.state) ? syncStateFromJSON(object.state) : 0,
|
|
6191
|
-
};
|
|
6102
|
+
return { flagConfiguration: isSet(object.flagConfiguration) ? String(object.flagConfiguration) : "" };
|
|
6192
6103
|
},
|
|
6193
6104
|
toJSON(message) {
|
|
6194
6105
|
const obj = {};
|
|
6195
6106
|
if (message.flagConfiguration !== "") {
|
|
6196
6107
|
obj.flagConfiguration = message.flagConfiguration;
|
|
6197
6108
|
}
|
|
6198
|
-
if (message.state !== 0) {
|
|
6199
|
-
obj.state = syncStateToJSON(message.state);
|
|
6200
|
-
}
|
|
6201
6109
|
return obj;
|
|
6202
6110
|
},
|
|
6203
6111
|
create(base) {
|
|
6204
6112
|
return SyncFlagsResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6205
6113
|
},
|
|
6206
6114
|
fromPartial(object) {
|
|
6207
|
-
var _a
|
|
6115
|
+
var _a;
|
|
6208
6116
|
const message = createBaseSyncFlagsResponse();
|
|
6209
6117
|
message.flagConfiguration = (_a = object.flagConfiguration) !== null && _a !== void 0 ? _a : "";
|
|
6210
|
-
message.state = (_b = object.state) !== null && _b !== void 0 ? _b : 0;
|
|
6211
6118
|
return message;
|
|
6212
6119
|
},
|
|
6213
6120
|
};
|
|
@@ -6329,9 +6236,160 @@ const FetchAllFlagsResponse = {
|
|
|
6329
6236
|
return message;
|
|
6330
6237
|
},
|
|
6331
6238
|
};
|
|
6239
|
+
function createBaseGetMetadataRequest() {
|
|
6240
|
+
return {};
|
|
6241
|
+
}
|
|
6242
|
+
const GetMetadataRequest = {
|
|
6243
|
+
encode(_, writer = minimal.Writer.create()) {
|
|
6244
|
+
return writer;
|
|
6245
|
+
},
|
|
6246
|
+
decode(input, length) {
|
|
6247
|
+
const reader = input instanceof minimal.Reader ? input : minimal.Reader.create(input);
|
|
6248
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
6249
|
+
const message = createBaseGetMetadataRequest();
|
|
6250
|
+
while (reader.pos < end) {
|
|
6251
|
+
const tag = reader.uint32();
|
|
6252
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
6253
|
+
break;
|
|
6254
|
+
}
|
|
6255
|
+
reader.skipType(tag & 7);
|
|
6256
|
+
}
|
|
6257
|
+
return message;
|
|
6258
|
+
},
|
|
6259
|
+
fromJSON(_) {
|
|
6260
|
+
return {};
|
|
6261
|
+
},
|
|
6262
|
+
toJSON(_) {
|
|
6263
|
+
const obj = {};
|
|
6264
|
+
return obj;
|
|
6265
|
+
},
|
|
6266
|
+
create(base) {
|
|
6267
|
+
return GetMetadataRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6268
|
+
},
|
|
6269
|
+
fromPartial(_) {
|
|
6270
|
+
const message = createBaseGetMetadataRequest();
|
|
6271
|
+
return message;
|
|
6272
|
+
},
|
|
6273
|
+
};
|
|
6274
|
+
function createBaseGetMetadataResponse() {
|
|
6275
|
+
return { metadata: [] };
|
|
6276
|
+
}
|
|
6277
|
+
const GetMetadataResponse = {
|
|
6278
|
+
encode(message, writer = minimal.Writer.create()) {
|
|
6279
|
+
for (const v of message.metadata) {
|
|
6280
|
+
KeyValue.encode(v, writer.uint32(10).fork()).ldelim();
|
|
6281
|
+
}
|
|
6282
|
+
return writer;
|
|
6283
|
+
},
|
|
6284
|
+
decode(input, length) {
|
|
6285
|
+
const reader = input instanceof minimal.Reader ? input : minimal.Reader.create(input);
|
|
6286
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
6287
|
+
const message = createBaseGetMetadataResponse();
|
|
6288
|
+
while (reader.pos < end) {
|
|
6289
|
+
const tag = reader.uint32();
|
|
6290
|
+
switch (tag >>> 3) {
|
|
6291
|
+
case 1:
|
|
6292
|
+
if (tag !== 10) {
|
|
6293
|
+
break;
|
|
6294
|
+
}
|
|
6295
|
+
message.metadata.push(KeyValue.decode(reader, reader.uint32()));
|
|
6296
|
+
continue;
|
|
6297
|
+
}
|
|
6298
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
6299
|
+
break;
|
|
6300
|
+
}
|
|
6301
|
+
reader.skipType(tag & 7);
|
|
6302
|
+
}
|
|
6303
|
+
return message;
|
|
6304
|
+
},
|
|
6305
|
+
fromJSON(object) {
|
|
6306
|
+
return { metadata: Array.isArray(object === null || object === void 0 ? void 0 : object.metadata) ? object.metadata.map((e) => KeyValue.fromJSON(e)) : [] };
|
|
6307
|
+
},
|
|
6308
|
+
toJSON(message) {
|
|
6309
|
+
var _a;
|
|
6310
|
+
const obj = {};
|
|
6311
|
+
if ((_a = message.metadata) === null || _a === void 0 ? void 0 : _a.length) {
|
|
6312
|
+
obj.metadata = message.metadata.map((e) => KeyValue.toJSON(e));
|
|
6313
|
+
}
|
|
6314
|
+
return obj;
|
|
6315
|
+
},
|
|
6316
|
+
create(base) {
|
|
6317
|
+
return GetMetadataResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6318
|
+
},
|
|
6319
|
+
fromPartial(object) {
|
|
6320
|
+
var _a;
|
|
6321
|
+
const message = createBaseGetMetadataResponse();
|
|
6322
|
+
message.metadata = ((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.map((e) => KeyValue.fromPartial(e))) || [];
|
|
6323
|
+
return message;
|
|
6324
|
+
},
|
|
6325
|
+
};
|
|
6326
|
+
function createBaseKeyValue() {
|
|
6327
|
+
return { key: "", value: "" };
|
|
6328
|
+
}
|
|
6329
|
+
const KeyValue = {
|
|
6330
|
+
encode(message, writer = minimal.Writer.create()) {
|
|
6331
|
+
if (message.key !== "") {
|
|
6332
|
+
writer.uint32(10).string(message.key);
|
|
6333
|
+
}
|
|
6334
|
+
if (message.value !== "") {
|
|
6335
|
+
writer.uint32(18).string(message.value);
|
|
6336
|
+
}
|
|
6337
|
+
return writer;
|
|
6338
|
+
},
|
|
6339
|
+
decode(input, length) {
|
|
6340
|
+
const reader = input instanceof minimal.Reader ? input : minimal.Reader.create(input);
|
|
6341
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
6342
|
+
const message = createBaseKeyValue();
|
|
6343
|
+
while (reader.pos < end) {
|
|
6344
|
+
const tag = reader.uint32();
|
|
6345
|
+
switch (tag >>> 3) {
|
|
6346
|
+
case 1:
|
|
6347
|
+
if (tag !== 10) {
|
|
6348
|
+
break;
|
|
6349
|
+
}
|
|
6350
|
+
message.key = reader.string();
|
|
6351
|
+
continue;
|
|
6352
|
+
case 2:
|
|
6353
|
+
if (tag !== 18) {
|
|
6354
|
+
break;
|
|
6355
|
+
}
|
|
6356
|
+
message.value = reader.string();
|
|
6357
|
+
continue;
|
|
6358
|
+
}
|
|
6359
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
6360
|
+
break;
|
|
6361
|
+
}
|
|
6362
|
+
reader.skipType(tag & 7);
|
|
6363
|
+
}
|
|
6364
|
+
return message;
|
|
6365
|
+
},
|
|
6366
|
+
fromJSON(object) {
|
|
6367
|
+
return { key: isSet(object.key) ? String(object.key) : "", value: isSet(object.value) ? String(object.value) : "" };
|
|
6368
|
+
},
|
|
6369
|
+
toJSON(message) {
|
|
6370
|
+
const obj = {};
|
|
6371
|
+
if (message.key !== "") {
|
|
6372
|
+
obj.key = message.key;
|
|
6373
|
+
}
|
|
6374
|
+
if (message.value !== "") {
|
|
6375
|
+
obj.value = message.value;
|
|
6376
|
+
}
|
|
6377
|
+
return obj;
|
|
6378
|
+
},
|
|
6379
|
+
create(base) {
|
|
6380
|
+
return KeyValue.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
6381
|
+
},
|
|
6382
|
+
fromPartial(object) {
|
|
6383
|
+
var _a, _b;
|
|
6384
|
+
const message = createBaseKeyValue();
|
|
6385
|
+
message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
|
|
6386
|
+
message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
|
|
6387
|
+
return message;
|
|
6388
|
+
},
|
|
6389
|
+
};
|
|
6332
6390
|
const FlagSyncServiceService = {
|
|
6333
6391
|
syncFlags: {
|
|
6334
|
-
path: "/sync.v1.FlagSyncService/SyncFlags",
|
|
6392
|
+
path: "/flagd.sync.v1.FlagSyncService/SyncFlags",
|
|
6335
6393
|
requestStream: false,
|
|
6336
6394
|
responseStream: true,
|
|
6337
6395
|
requestSerialize: (value) => Buffer.from(SyncFlagsRequest.encode(value).finish()),
|
|
@@ -6340,7 +6398,7 @@ const FlagSyncServiceService = {
|
|
|
6340
6398
|
responseDeserialize: (value) => SyncFlagsResponse.decode(value),
|
|
6341
6399
|
},
|
|
6342
6400
|
fetchAllFlags: {
|
|
6343
|
-
path: "/sync.v1.FlagSyncService/FetchAllFlags",
|
|
6401
|
+
path: "/flagd.sync.v1.FlagSyncService/FetchAllFlags",
|
|
6344
6402
|
requestStream: false,
|
|
6345
6403
|
responseStream: false,
|
|
6346
6404
|
requestSerialize: (value) => Buffer.from(FetchAllFlagsRequest.encode(value).finish()),
|
|
@@ -6348,8 +6406,17 @@ const FlagSyncServiceService = {
|
|
|
6348
6406
|
responseSerialize: (value) => Buffer.from(FetchAllFlagsResponse.encode(value).finish()),
|
|
6349
6407
|
responseDeserialize: (value) => FetchAllFlagsResponse.decode(value),
|
|
6350
6408
|
},
|
|
6409
|
+
getMetadata: {
|
|
6410
|
+
path: "/flagd.sync.v1.FlagSyncService/GetMetadata",
|
|
6411
|
+
requestStream: false,
|
|
6412
|
+
responseStream: false,
|
|
6413
|
+
requestSerialize: (value) => Buffer.from(GetMetadataRequest.encode(value).finish()),
|
|
6414
|
+
requestDeserialize: (value) => GetMetadataRequest.decode(value),
|
|
6415
|
+
responseSerialize: (value) => Buffer.from(GetMetadataResponse.encode(value).finish()),
|
|
6416
|
+
responseDeserialize: (value) => GetMetadataResponse.decode(value),
|
|
6417
|
+
},
|
|
6351
6418
|
};
|
|
6352
|
-
const FlagSyncServiceClient = makeGenericClientConstructor(FlagSyncServiceService, "sync.v1.FlagSyncService");
|
|
6419
|
+
const FlagSyncServiceClient = makeGenericClientConstructor(FlagSyncServiceService, "flagd.sync.v1.FlagSyncService");
|
|
6353
6420
|
function isSet(value) {
|
|
6354
6421
|
return value !== null && value !== undefined;
|
|
6355
6422
|
}
|
|
@@ -6395,39 +6462,47 @@ class GrpcFetch {
|
|
|
6395
6462
|
var _a;
|
|
6396
6463
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.debug('Starting gRPC sync connection');
|
|
6397
6464
|
closeStreamIfDefined(this._syncStream);
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
|
|
6401
|
-
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6465
|
+
try {
|
|
6466
|
+
this._syncStream = this._syncClient.syncFlags(this._request);
|
|
6467
|
+
this._syncStream.on('data', (data) => {
|
|
6468
|
+
var _a, _b, _c, _d;
|
|
6469
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.debug(`Received sync payload`);
|
|
6470
|
+
try {
|
|
6471
|
+
const changes = dataCallback(data.flagConfiguration);
|
|
6472
|
+
if (this._initialized && changes.length > 0) {
|
|
6473
|
+
changedCallback(changes);
|
|
6474
|
+
}
|
|
6406
6475
|
}
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
this.
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6476
|
+
catch (err) {
|
|
6477
|
+
(_b = this._logger) === null || _b === void 0 ? void 0 : _b.debug('Error processing sync payload: ', (_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : 'unknown error');
|
|
6478
|
+
}
|
|
6479
|
+
if (resolveConnect) {
|
|
6480
|
+
resolveConnect();
|
|
6481
|
+
}
|
|
6482
|
+
else if (!this._isConnected) {
|
|
6483
|
+
// Not the first connection and there's no active connection.
|
|
6484
|
+
(_d = this._logger) === null || _d === void 0 ? void 0 : _d.debug('Reconnected to gRPC sync');
|
|
6485
|
+
reconnectCallback();
|
|
6486
|
+
}
|
|
6487
|
+
this._isConnected = true;
|
|
6488
|
+
});
|
|
6489
|
+
this._syncStream.on('error', (err) => {
|
|
6490
|
+
this.handleError(err, dataCallback, reconnectCallback, changedCallback, disconnectCallback, rejectConnect);
|
|
6491
|
+
});
|
|
6492
|
+
}
|
|
6493
|
+
catch (err) {
|
|
6494
|
+
this.handleError(err, dataCallback, reconnectCallback, changedCallback, disconnectCallback, rejectConnect);
|
|
6495
|
+
}
|
|
6496
|
+
}
|
|
6497
|
+
handleError(err, dataCallback, reconnectCallback, changedCallback, disconnectCallback, rejectConnect) {
|
|
6498
|
+
var _a, _b, _c;
|
|
6499
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.error('Connection error, attempting to reconnect');
|
|
6500
|
+
(_b = this._logger) === null || _b === void 0 ? void 0 : _b.debug(err);
|
|
6501
|
+
this._isConnected = false;
|
|
6502
|
+
const errorMessage = (_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : 'Failed to connect to syncFlags stream';
|
|
6503
|
+
disconnectCallback(errorMessage);
|
|
6504
|
+
rejectConnect === null || rejectConnect === void 0 ? void 0 : rejectConnect(new GeneralError(errorMessage));
|
|
6505
|
+
this.reconnect(dataCallback, reconnectCallback, changedCallback, disconnectCallback);
|
|
6431
6506
|
}
|
|
6432
6507
|
reconnect(dataCallback, reconnectCallback, changedCallback, disconnectCallback) {
|
|
6433
6508
|
const channel = this._syncClient.getChannel();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfeature/flagd-provider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.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"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"util": "0.12.5"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@grpc/grpc-js": "~1.8.0 || ~1.9.0",
|
|
15
|
+
"@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0",
|
|
16
16
|
"@openfeature/server-sdk": ">=1.8.0"
|
|
17
17
|
},
|
|
18
18
|
"exports": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EvaluationContext, JsonValue, Logger, ResolutionDetails } from '@openfeature/server-sdk';
|
|
2
|
-
import { ServiceClient } from '../../../proto/ts/
|
|
2
|
+
import { ServiceClient } from '../../../proto/ts/flagd/evaluation/v1/evaluation';
|
|
3
3
|
import { Config } from '../../configuration';
|
|
4
4
|
import { Service } from '../service';
|
|
5
5
|
interface FlagChange {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Logger } from '@openfeature/core';
|
|
2
|
-
import { FlagSyncServiceClient } from '../../../../proto/ts/sync/v1/
|
|
2
|
+
import { FlagSyncServiceClient } from '../../../../proto/ts/flagd/sync/v1/sync';
|
|
3
3
|
import { Config } from '../../../configuration';
|
|
4
4
|
import { DataFetch } from '../data-fetch';
|
|
5
5
|
/**
|
|
@@ -26,5 +26,6 @@ export declare class GrpcFetch implements DataFetch {
|
|
|
26
26
|
connect(dataCallback: (flags: string) => string[], reconnectCallback: () => void, changedCallback: (flagsChanged: string[]) => void, disconnectCallback: (message: string) => void): Promise<void>;
|
|
27
27
|
disconnect(): Promise<void>;
|
|
28
28
|
private listen;
|
|
29
|
+
private handleError;
|
|
29
30
|
private reconnect;
|
|
30
31
|
}
|